Loading...
MySQL 9.5 Reference Manual 9.5의 6.3.4 mysqld_multi — Manage Multiple MySQL Servers의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
mysqld_multi는 서로 다른 Unix 소켓 파일과 TCP/IP 포트에서 연결을 수신하는 여러 mysqld 프로세스를 관리하도록 설계되었습니다. 서버를 시작하거나 중지할 수 있고, 현재 상태를 보고할 수도 있습니다.
참고
일부 Linux 플랫폼에서, RPM 또는 Debian 패키지를 통한 MySQL 설치에는 MySQL 서버 시작과 종료를 관리하기 위한 systemd 지원이 포함됩니다. 이러한 플랫폼에서는 mysqld_multi가 필요 없으므로 설치되지 않습니다. 여러 MySQL 인스턴스를 처리하기 위해 systemd를 사용하는 방법에 대한 정보는 Section 2.5.9, “Managing MySQL Server with systemd”를 참조하십시오.
mysqld_multi는 my.cnf (또는
--defaults-file 옵션에 의해 지정된 파일)에서
[mysqldN]이라는 이름의 그룹을 찾습니다.
_N_은 임의의 양의 정수가 될 수 있습니다. 이
숫자는 이후 설명에서 옵션 그룹 번호 또는
_GNR_이라고 합니다. 그룹 번호는 옵션 그룹을 서로 구분하고,
어느 서버를 시작, 중지, 또는 상태 보고 대상으로 할지 지정하기 위해
mysqld_multi에 전달되는 인수로 사용됩니다.
이들 그룹에 나열되는 옵션은
mysqld를 시작할 때 사용하는
[mysqld] 그룹에서 사용하는 옵션과 동일합니다. (예를 들어
Section 2.9.5, “Starting and Stopping MySQL Automatically”를 참조하십시오.)
그러나 여러 서버를 사용할 때에는, 각 서버가 Unix 소켓 파일과 TCP/IP 포트 번호와 같은 옵션에 대해 고유한 값을 사용해야 합니다. 하나의 머신에서 여러 서버를 실행하는 환경에서 서버마다 고유해야 하는 옵션에 대한 자세한 내용은 Section 7.8, “Running Multiple MySQL Instances on One Machine”을 참조하십시오.
mysqld_multi를 호출하려면 다음 구문을 사용합니다:
1mysqld_multi [options] {start|stop|reload|report} [GNR[,GNR] ...]
start, stop,
reload (정지 후 재시작), report는
수행할 작업을 지정합니다. 지정된 작업은,
옵션 이름 뒤에 오는 GNR 리스트에 따라
단일 서버 또는 여러 서버에 대해 수행할 수 있습니다. 리스트가 없으면
mysqld_multi는 옵션 파일에 있는 모든 서버에 대해
해당 작업을 수행합니다.
각 GNR 값은 옵션 그룹 번호 또는 그룹 번호 범위를 나타냅니다.
그 값은 옵션 파일에서 그룹 이름 끝에 오는 숫자여야 합니다. 예를 들어,
[mysqld17]이라는 이름의 그룹에 대한 _GNR_은
17입니다. 숫자 범위를 지정하려면 처음 숫자와 마지막 숫자를
대시로 구분합니다. GNR 값
10-13은
[mysqld10]부터
[mysqld13]까지의 그룹을 의미합니다. 여러 그룹 또는 그룹 범위는
커맨드 라인에서 쉼표로 구분하여 지정할 수 있습니다.
GNR 리스트에는 공백 문자(공백 또는 탭)가 있어서는 안 되며,
공백 문자 뒤의 내용은 무시됩니다.
다음 커맨드는 옵션 그룹
[mysqld17]을 사용하여 단일 서버를 시작합니다:
1mysqld_multi start 17
다음 커맨드는 옵션 그룹
[mysqld8] 및
[mysqld10]부터
[mysqld13]까지를 사용하여 여러 서버를 중지합니다:
1mysqld_multi stop 8,10-13
옵션 파일을 어떻게 설정할 수 있는지 예시를 보려면 다음 커맨드를 사용하십시오:
1mysqld_multi --example
mysqld_multi는 다음과 같이 옵션 파일을 검색합니다:
--no-defaults를 사용하면
어떠한 옵션 파일도 읽지 않습니다.| Property | Value |
|---|---|
| Command-Line Format | --no-defaults |
| Type | Boolean |
| Default Value | false |
--defaults-file=file_name를
사용하면 지정된 파일만 읽습니다.| Property | Value |
|---|---|
| Command-Line Format | --defaults-file=filename |
| Type | File name |
| Default Value | [none] |
--defaults-extra-file=file_name
옵션에 의해 지정된 파일도 포함됩니다. (이 옵션이 여러 번 주어지면,
마지막 값이 사용됩니다.)| Property | Value |
|---|---|
| Command-Line Format | --defaults-extra-file=filename |
| Type | File name |
| Default Value | [none] |
이러한 옵션 파일 관련 옵션 및 기타 옵션에 대한 추가 정보는 Section 6.2.2.3, “Command-Line Options that Affect Option-File Handling”을 참조하십시오.
읽은 옵션 파일은
[mysqld_multi] 및
[mysqldN] 옵션 그룹을 검색합니다.
[mysqld_multi] 그룹은
mysqld_multi 자체에 대한 옵션에 사용할 수 있습니다.
[mysqldN] 그룹은 특정
mysqld 인스턴스에 전달할 옵션에 사용할 수 있습니다.
[mysqld] 또는
[mysqld_safe] 그룹은 모든
mysqld 인스턴스 또는
mysqld_safe 인스턴스가 공통적으로 읽는 옵션에 사용할 수 있습니다.
해당 인스턴스에 대해 다른 설정 파일을 사용하려면
--defaults-file=file_name
옵션을 지정할 수 있으며, 이 경우 그 인스턴스에는 그 파일의
[mysqld] 또는
[mysqld_safe] 그룹이 사용됩니다.
mysqld_multi는 다음 옵션을 지원합니다.
| Property | Value |
|---|---|
| Command-Line Format | --help |
| Type | Boolean |
| Default Value | false |
help 메시지를 표시하고 종료합니다.
| Property | Value |
|---|---|
| Command-Line Format | --example |
| Type | Boolean |
| Default Value | false |
샘플 옵션 파일을 표시합니다.
| Property | Value |
|---|---|
| Command-Line Format | --log=path |
| Type | File name |
| Default Value | /var/log/mysqld_multi.log |
로그 파일 이름을 지정합니다. 파일이 존재하면, 로그 출력은 그 파일에 append됩니다.
| Property | Value |
|---|---|
| Command-Line Format | --mysqladmin=file |
| Type | File name |
| Default Value | [none] |
서버를 중지하는 데 사용할 mysqladmin 바이너리입니다.
| Property | Value |
|---|---|
| Command-Line Format | --mysqld=file |
| Type | File name |
| Default Value | [none] |
사용할 mysqld 바이너리입니다. 이 옵션 값으로
mysqld_safe를 지정할 수도 있다는 점에 유의하십시오.
서버를 시작하는 데
mysqld_safe를 사용하는 경우,
해당하는 [mysqldN] 옵션 그룹에
mysqld 또는
ledir 옵션을 포함할 수 있습니다. 이 옵션들은
mysqld_safe가 시작해야 할 서버의 이름과 서버가 위치한 디렉터리의 경로 이름을 나타냅니다.
(이 옵션들에 대한 설명은
Section 6.3.2, “mysqld_safe — MySQL Server Startup Script”를 참조하십시오.) 예:
1[mysqld38] 2mysqld = mysqld-debug 3ledir = /opt/local/mysql/libexec
| Property | Value |
|---|---|
| Command-Line Format | --no-log |
| Type | Boolean |
| Default Value | false |
로그 정보를 로그 파일 대신 stdout에 출력합니다.
기본적으로 출력은 로그 파일로 전송됩니다.
| Property | Value |
|---|---|
| Command-Line Format | --password=string |
| Type | String |
| Default Value | [none] |
mysqladmin을 호출할 때 사용할 MySQL 계정의 패스워드입니다. 이 옵션에 대해서는 다른 MySQL 프로그램과 달리 패스워드 값이 필수라는 점에 유의하십시오.
| Property | Value |
|---|---|
| Command-Line Format | --silent |
| Type | Boolean |
| Default Value | false |
silent 모드; 경고를 비활성화합니다.
| Property | Value |
|---|---|
| Command-Line Format | --tcp-ip |
| Type | Boolean |
| Default Value | false |
Unix 소켓 파일 대신 TCP/IP 포트를 통해 각 MySQL 서버에 연결합니다.
(소켓 파일이 없더라도, 서버는 여전히 실행 중일 수 있지만 TCP/IP 포트를 통해서만
접근할 수 있습니다.) 기본적으로 연결은 Unix 소켓 파일을 사용하여 이루어집니다.
이 옵션은 stop 및
report 작업에 영향을 줍니다.
| Property | Value |
|---|---|
| Command-Line Format | --user=name |
| Type | String |
| Default Value | root |
mysqladmin을 호출할 때 사용할 MySQL 계정의 사용자 이름입니다.
| Property | Value |
|---|---|
| Command-Line Format | --verbose |
| Type | Boolean |
| Default Value | false |
보다 상세하게 출력합니다.
| Property | Value |
|---|---|
| Command-Line Format | --version |
| Type | Boolean |
| Default Value | false |
버전 정보를 표시하고 종료합니다.
mysqld_multi에 대한 몇 가지 참고 사항:
주의
각 서버의 데이터 디렉터리가 해당
mysqld 프로세스가 시작되는 Unix 계정에서 완전히
접근 가능하도록 해야 합니다.
자신이 무엇을 하는지 정확히 알고 있지 않다면,
이 작업에 Unix
root 계정을 사용하지 마십시오.
Section 8.1.5, “How to Run MySQL as a Normal User”를 참조하십시오.
SHUTDOWN
권한이 있는지 확인하십시오. 관리용 계정에 대해 관리 대상 서버마다
다른 사용자 이름이나 패스워드를 사용하는 경우, 동일한 사용자 이름과 패스워드를 갖는 계정을
각 서버에 생성하는 것이 좋습니다. 예를 들어, 각 서버에서 다음 커맨드를 실행하여
공통 multi_admin 계정을 설정할 수 있습니다:1$> mysql -u root -S /tmp/mysql.sock -p 2Enter password: 3mysql> CREATE USER 'multi_admin'@'localhost' IDENTIFIED BY 'multipass'; 4mysql> GRANT SHUTDOWN ON *.* TO 'multi_admin'@'localhost';
Section 8.2, “Access Control and Account Management”를 참조하십시오.
이 작업은 각
mysqld 서버에 대해 수행해야 합니다. 각 서버에 연결할 때는
연결 매개변수를 적절히 변경하십시오. 계정 이름의 호스트 이름 부분은
multi_admin으로서 연결을 실행하려는 호스트에서의 접속을 허용해야 한다는 점에
유의하십시오. 이 호스트에서
mysqld_multi를 실행하게 됩니다.
Unix 소켓 파일과 TCP/IP 포트 번호는 각
mysqld마다 달라야 합니다.
(또는, 호스트에 여러 네트워크 주소가 있는 경우,
bind_address 시스템 변수를 설정하여
서로 다른 서버가 서로 다른 인터페이스를 listen하도록 할 수 있습니다.)
mysqld_safe를 사용해서
mysqld를 시작하는 경우(예:
--mysqld=mysqld_safe),
--pid-file 옵션이 매우 중요합니다.
각 mysqld는 자신만의 프로세스 ID 파일을 가져야 합니다.
mysqld 대신
mysqld_safe를 사용하는 이점은,
mysqld_safe가 자신의
mysqld 프로세스를 모니터링하고,
kill -9로 전송된 시그널이나 segmentation fault와 같은 이유로 프로세스가
종료될 경우 해당 프로세스를 다시 시작한다는 점입니다.
mysqld에 대해
--user 옵션을 사용하고 싶을 수 있지만,
이를 위해서는 Unix superuser (root)로
mysqld_multi 스크립트를 실행해야 합니다.
옵션 파일에 이 옵션이 포함되어 있는지는 중요하지 않으며,
superuser가 아니면 경고만 표시되고,
mysqld 프로세스는 자신의 Unix 계정으로 시작됩니다.
다음 예시는 mysqld_multi와 함께 사용할 옵션 파일을 어떻게 설정할 수 있는지를 보여줍니다. mysqld 프로그램이 시작되거나 중지되는 순서는 옵션 파일에 나타나는 순서에 따라 달라집니다. 그룹 번호는 연속된 수열일 필요가 없습니다.
예시에서는 첫 번째와 다섯 번째
[mysqldN] 그룹을 의도적으로 생략하여
옵션 파일에 “gap”을 둘 수 있음을 보여줍니다.
이는 더 큰 유연성을 제공합니다.
1# This is an example of a my.cnf file for mysqld_multi. 2# Usually this file is located in home dir ~/.my.cnf or /etc/my.cnf 3 4[mysqld_multi] 5mysqld = /usr/local/mysql/bin/mysqld_safe 6mysqladmin = /usr/local/mysql/bin/mysqladmin 7user = multi_admin 8password = my_password 9 10[mysqld2] 11socket = /tmp/mysql.sock2 12port = 3307 13pid-file = /usr/local/mysql/data2/hostname.pid2 14datadir = /usr/local/mysql/data2 15language = /usr/local/mysql/share/mysql/english 16user = unix_user1 17 18[mysqld3] 19mysqld = /path/to/mysqld_safe 20ledir = /path/to/mysqld-binary/ 21mysqladmin = /path/to/mysqladmin 22socket = /tmp/mysql.sock3 23port = 3308 24pid-file = /usr/local/mysql/data3/hostname.pid3 25datadir = /usr/local/mysql/data3 26language = /usr/local/mysql/share/mysql/swedish 27user = unix_user2 28 29[mysqld4] 30socket = /tmp/mysql.sock4 31port = 3309 32pid-file = /usr/local/mysql/data4/hostname.pid4 33datadir = /usr/local/mysql/data4 34language = /usr/local/mysql/share/mysql/estonia 35user = unix_user3 36 37[mysqld6] 38socket = /tmp/mysql.sock6 39port = 3311 40pid-file = /usr/local/mysql/data6/hostname.pid6 41datadir = /usr/local/mysql/data6 42language = /usr/local/mysql/share/mysql/japanese 43user = unix_user4
6.3.3 mysql.server — MySQL Server Startup Script
6.4 Installation-Related Programs