MySQL의 다양한 실행 프로그램 mysqld_safe, mysql.server, mysqld_multi feat.mysqld
안녕하세요.
mysql을 쓰면서 다양한 실행 옵션이 있는 건지 알고 계셨나요?
mysql.server
mysqld_safe
mysqld_multi
MySQL은 위와 같은 실행 프로그램을 가지고 있습니다. 이를 Server Helper Programs 라고 합니다.
우선 위의 어떤 프로그램이든 결국 mysqld를 호출하여 실행하게 하는데, 먼저 mysqld에 관해서 알아보겠습니다.
mysqld
MySQL Server를 mysqld라고 합니다.
디스크나 메모리에 있는 데이터베이스에 대한 접근을 통제합니다.
여러 개의 스토리지 엔진을 지원합니다.
cache와 buffer를 사용해서 메모리 사용을 관리합니다.
mysqld(server program) process는 아래와 같이 세 가지 레이어로 나눠질 수 있습니다.
Connection Layer | Communication protocols |
Threads | |
Authentication | |
SQL Layer | Parser |
Authorization | |
Optimizer | |
Query execution | |
Optional: Query cache | |
Optional: Query logging | |
Storage Layer | Disk - InnoDB, MyISAM |
Memory - MEMORY | |
Network - NDBCLUSTER |
mysqld 실행 옵션도 한번 살펴보겠습니다.
-H : 접속할 DB 서버 IP
-P : 접속 할 DB 서버 port
-u : 접속 ID
-p : password
mysql -H 123.456.789 -P 3307 -u user_id -p passwd
* 가장 많이 쓰이는 실행 옵션 입니다.
mysqld --help
mysqld --verbose --help
위와 같은 명령어로 우선 도움말을 확인할 수 있습니다.
다양한 옵션들은 아래 웹사이트를 참고하시면 됩니다.
https://dev.mysql.com/doc/refman/8.0/en/server-options.html
mysqld_safe
MySQL을 실행할 때는 mysqld를 직접 호출하는 것보다 mysqld_safe를 통해서 시작하는 것을 권장합니다.
mysqld_safe는 일종의 mysqld를 감시하는 데몬이라고 볼 수 있는데, 사용자가 mysqld_safe로 MySQL을 시작하면 mysqld_safe이 내부 스크립트에서 mysqld를 실행하고 mysqld 프로세스를 모니터링하고, 어떤 문제로 mysqld가 강제 종료하면 mysqld를 다시 시작하게 합니다.
만약 바로 재시작이 되지 않으면 error log를 살펴볼 수 있습니다.
mysql.server
mysql.server는 mysqld_safe를 실행합니다. 그리고 mysqld_safe는 위의 내용과 같이 mysqld를 호출하고 프로세스를 모니터링하게 됩니다.
mysqld_multi
mysqld_multi는 한 호스트에서 여러 MySQL 서버의 mysqld를 한 번에 실행하거나 종료시킬 수 있게 하는 Perl script입니다. mysqld_multi 역시 mysql.server와 마찬가지로 mysqld_safe를 실행하고 다시 mysqld_safe는 mysqld를 호출하여 실행하게 됩니다.
mysqld_safe와 mysqld_multi 각각의 실행 예제와 실행 옵션 확인하기
mysqld_safe [ --defaults-file | --defaults-extra-file ] <options> <mysqld_options>
https://dev.mysql.com/doc/refman/8.0/en/mysqld-safe.html
mysqld_multi [options] {start|stop|report} [GNR[,GNR] ...]
ex) mysqld_multi start 17
ex) mysqld_multi stop 8,10-13
https://dev.mysql.com/doc/refman/8.0/en/mysqld-multi.html
by.sTricky
'Database > mariaDB administrator' 카테고리의 다른 글
mysql 테이블 한글 insert 안될때 조치 방안 (4) | 2020.03.13 |
---|---|
MySQL 8.0 테이블스페이스 관리 방법 변경 내용 feat.테이블 스페이스 삭제 한다면?! (2) | 2020.02.19 |
[mariadb] autocommit 설정과 트랜잭션 개념과 성질 (0) | 2020.01.30 |
[mariadb] 유저별 권한 관리, 권한 목록 종류, DB 권한 관리의 필요성, 권한 조회 (0) | 2020.01.13 |
[mariadb] DB 계정 별 권한 확인, 적용, 부여, 회수 계정 생성 (0) | 2020.01.07 |