Search
Duplicate
2️⃣

MySQL 서버의 시작과 종료

MySQL 서버를 시작하고 종료하는 방법을 설명하고 mysql 클라이언트 프로그램을 이용한 간단한 테스트를 진행한다.

1. 설정 파일 및 데이터 파일 준비

우선 MySQL 서버가 설치되면 /etc/my.cnf 설정 파일이 준비되는데, 이 설정 파일에는 MySQL 서버를 실행하는 데 꼭 필요한 기본 설정이 존재한다.
--mysqld 명령에 --initialize-insecure 옵션을 사용하면 필요한 초기 데이터 파일과 로그 파일들을 생성하고 마지막으로 비밀번호가 없는 관리자 계정 root를 생성한다.
에러 로그 파일의 기본 경로는 /var/log/mysqld.log인데, 파일의 제일 마지막에 보면 관리자 계정의 비밀번호를 확인할 수 있다.

2. 시작과 종료

유닉스 계열 운영체제에서 RPM 패키지로 MySQL을 설치했다면 자동으로 /usr/lib/systemd/system/mysqld.service 파일이 생성되고 systemctl 유틸리티를 이용해 MySQL을 기동하거나 종료하는 것이 가능,
윈도우 인스톨러 버전의 MySQL을 설치했다면 설치 중 선택사항으로 윈도우의 서비스로 MySQL을 등록할 수 있다.
시작 : systemctl start mysqld
상태확인 : systemctl status mysqld
종료 : systemctl stop mysqld
원격으로 MySQL 서버를 종료시키려면 MySQL 서버에 로그인한 상태에서 SHUTDOWN 명령을 실행하면 된다.
SHUTDOWN 권한을 가지고 있어야 가능하다.
MySQL 서버에서는 실제 트랜잭션이 정상적으로 커밋돼도 데이터 파일에 변경된 내용이 기록되지 않고 로그 파일에만 기록되어있을 수 있다.
심지어는 MySQL 서버가 종료되고 다시 시작된 이후에도 계속 이 상태로 남아 있을 수 있으며 사용량이 많은 MySQL 서버에서는 이런 현상이 더욱 일반적이다.
MySQL 서버가 종료될 때 모든 커밋된 내용을 데이터 파일에 기록하고 종료하게 할 수 있다.
MySQL 서버의 옵션을 SET GLOBAL innodb_fast_shutdown=0; 해주면 된다.
MySQL 서버가 시작되거나 종료될 때는 InnoDB 스토리지 엔진의 버퍼 풀 내용을 백업하고 복구하는 과정이 내부적으로 실행된다.
실제 버퍼 풀의 내용을 백업하는 것이 아니라 버퍼 풀에 적재되어있던 데이터 파일의 데이터 페이지에 대한 메타 정보를 백업하여 용량이 크지 않아 빠르게 완료된다.
하지만 MySQL 서버가 새로 시작될 때는 디스크에서 데이터 파일들을 모두 읽어서 적재해야 하므로 상당한 시간이 걸린다.
서버의 시작 시간이 오래 걸린다면 MySQL 서버가 버퍼 풀의 내용을 복구하고 있는지 확인하는 것이 좋다.

3. 서버 연결 테스트

mysql -uroot -p --host:localhost --socket=/temp/mysql.sock mysql -uroot -p --host:127.0.0.1 --port=3306 mysql -uroot -p
Plain Text
복사
위와 같이 여러 행태의 명령행 인자를 넣어 접속을 시도할 수 있다.
MySQL 서버에 접속했다면 SHOW DATABASES 명령으로 데이터베이스의 목록을 확인할 수 있다.
root 계정이 준비되어 있으며 --initialize-insecure 옵션으로 초기화됐다면 비밀번호 없이 로그인할 수 있다.
만약 --initialize 옵션으로 MySQL 서버가 초기화됐다면 로그 파일의 비밀번호를 확인하여 사용한다.