[42Seoul] ft_services - mysql, mysqld

seomoon·2021년 3월 31일
0

42Seoul

목록 보기
8/9

mysql

  • SQL 쉘, sql문을 실행시켜주는 커맨드 라인 클라이언트.
    mysql을 사용하려면 터미널에 mysql database_name 명령어를 이용해
    mysql에 접속하면 된다.

  • 데이터베이스에 설정된 user name과 password가 있는 경우
    mysql --user=user_name --password database_name
    Enter password: password
    다음과 같이 username과 password를 입력해 접속할 수도 있다.

  • 쉘에 접속한 후에 SQL 쿼리문을 입력해 필요한 작업을 하면 된다.

  • 쉘에 직접 접속해 쿼리를 입력하는 대신 mysql database_name < script.sql 와 같이 sql 스크립트 파일을 실행할 수도 있다.

mysqld (MySQL 서버)

  • mysqld : MYSQL 서버, 백그라운드에서 돌아가고 있는 프로세스. MySQL + D (Daemon).

  • MySQL 서버는 MySQL의 데이터베이스와 테이블을 포함하는 데이터 디렉토리에 대한 액세스를 관리한다. (데이터 디렉토리에는 로그 파일이나 상태 파일과 같은 다른 정보들도 저장된다. )

  • 데이터베이스 서버에 쿼리를 갱신하고 싶다면, 클라이언트(mysql)를 사용해 서버(mysqld)에 연결해야한다.

  • MySQL 서버는 시스템 변수를 가지고 있다. 시스템 변수는 서버가 시작할 때 셋팅되며, 런타임에 값이 변경될 수 있다. MySQL 서버는 상태 변수(status variables)도 제공한다.

  1. 설치 : apk add mysql mysql-client

  2. 초기화 :

    • mysql_install_db라는 프로그램으로 초기화한다.
      mysql_install_db --user=root (--datadir=/var/lib/mysql)
      --datadir 옵션으로 데이터 디렉토리를 지정해도 되고
      configuration file(my.conf)에서 데이터 디렉토리를 지정해도 됨.

    • MySQL 데이터 디렉토리인 /var/lib/mysql는 mysql 유저 및 그룹 소유여야 함.

    • configuration 파일 : Alpine 버전에 따라 다름. 내가 사용하는 버전(3.12.0)에서는 /etc/mysql/my.cnf

    • mysqld -u root --bootstrap : bootstrap 모드는 주로 mysql_install_db에서 SQL 스크립트를 실행하기 위해 사용됨.

    • mysqld -u root --bootstrap < scripts.sql로 sql 스크립트 파일을 전달해 실행시킬 수 있다.

  3. mysqld 활성화 : mysqld --user=root로 mysqld를 활성화

+) my.conf

[mysqld]
user = root
datadir = /var/lib/mysql
port = 3306
log-bin = /var/lib/mysql/mysql-bin
bind-address = 0.0.0.0
skip-networking = 0
  • user는 root로 설정 (비밀번호 입력 필요 x)

  • datadir : 데이터 디렉토리 위치 지정. PV 위치.

  • log-bin : log 파일이 저장될 위치 지정. 설정 안하면 datadir에 저장됨.

  • bind-address : 외부와 연결하기 위한 통로. 0.0.0.0의 의미는 모든 ip를 허용하겠다는 것.

  • skip-networking : 1(true)이면 로컬에서만 수신하므로 0(false)로 바꿔준다. (다른 컨테이너에서 접근해야하므로)

  • Reference :
    mysql 서버 부트스트래핑과 딕셔너리 초기화
    alpine wiki - MySQL
    simian114님 github ft_services - my.cnf

profile
💛💛 🖥🏐🛋🥗💵📖 💛💛

0개의 댓글