본문 바로가기

Database/mariaDB administrator

MySQL의 다양한 실행 프로그램 mysqld_safe, mysql.server, mysqld_multi feat.mysqld

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

 

MySQL :: MySQL 8.0 Reference Manual :: 5.1.7 Server Command Options

5.1.7 Server Command Options When you start the mysqld server, you can specify program options using any of the methods described in Section 4.2.2, “Specifying Program Options”. The most common methods are to provide options in an option file or on the com

dev.mysql.com

 

 

mysqld_safe

MySQL을 실행할 때는 mysqld를 직접 호출하는 것보다 mysqld_safe를 통해서 시작하는 것을 권장합니다.

 

mysqld_safe는 일종의 mysqld를 감시하는 데몬이라고 볼 수 있는데, 사용자가 mysqld_safeMySQL을 시작하면 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

 

MySQL :: MySQL 8.0 Reference Manual :: 4.3.2 mysqld_safe — MySQL Server Startup Script

4.3.2 mysqld_safe — MySQL Server Startup Script mysqld_safe is the recommended way to start a mysqld server on Unix. mysqld_safe adds some safety features such as restarting the server when an error occurs and logging runtime information to an error log. A

dev.mysql.com

 

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

 

MySQL :: MySQL 8.0 Reference Manual :: 4.3.4 mysqld_multi — Manage Multiple MySQL Servers

4.3.4 mysqld_multi — Manage Multiple MySQL Servers mysqld_multi is designed to manage several mysqld processes that listen for connections on different Unix socket files and TCP/IP ports. It can start or stop servers, or report their current status. Note F

dev.mysql.com

 

by.sTricky