• MySQL매뉴얼
    • MySQL 5.6 매뉴얼
    • MySQL 5.1 매뉴얼
    • MySQL 5.0 매뉴얼
    • MySQL HA 매뉴얼
  • 기술문서
    • Xtrabackup 구성
    • 메모리 사용량 모니터링
  • 라이선스
  • 온라인문의
  • 회사소개
  • → 목 록 (MySQL5.6 한글메뉴얼) [close]
  • 1. MySQL 5.6 새로운 기능
  • 2. MySQL 설치 및 업그레이드
  • 3. MySQL Tutorial
  • 4. MySQL 프로그램
  • 1. MySQL 프로그램 개요
    2. MySQL 프로그램 사용
    3. MySQL 서버와 서버 시작 프로그램
    1. mysqld - MySQL 서버
    2. mysqld_safe - MySQL 서버 시작 스크립트
    3. mysql.server - MySQL 서버 시작 스크립트
    4. mysqld_multi - 여러 MySQL 서버 관리
    4. 설치 관련 프로그램
    5. 클라이언트 프로그램
    6. MySQL 관리 프로그램 및 유틸리티 프로그램
    7. MySQL 프로그램 개발 유틸리티
    8. 기타 프로그램
  • 5. MySQL 서버관리
  • 6. 보안
  • 7. 백업 및 복구
  • 8. 최적화
  • 9. Language Structure(언어구조)
  • 10. Character Sets(Globalization)
  • 11. 데이터형(Data Types)
  • 12. 함수와 연산자
  • 13. SQL 문법
  • 14. InnoDB 스토리지 엔진
  • 15. 기타 스토리지 엔진
  • 16. 고가용성 및 확장성
  • 17. 리플리케이션
  • 18. MySQL Cluster
  • 19. 파티셔닝
  • 20. Stored Programs and Views
  • 21. INFORMATION_SCHEMA
  • 22. PERFORMANCE SCHEMA
  • 23. 컨넥터 및 API
  • 24. MySQL 확장
  • 25. MySQL Enterprise Edition
  • 26. MySQL Workbench
  • 27. 제약 및 제한
  • 28. MySQL 5.7 새로운 기능

4.3.4 mysqld_multi - 여러 MySQL 서버 관리

mysqld_multi는 Unix 소켓 파일과 TCP / IP 포트에서 연결을 대기하는 복수의 mysqld 프로세스를 관리하기위한 것입니다. 서버 시작 또는 중지 현재 상태 보고서를 실행할 수 있습니다.

mysqld_multi는 [mysqld N ] 라는 그룹을 my.cnf (또는 --defaults-file 옵션으로 지정된 파일)에서 검색합니다. N 은 양의 정수입니다. 이 숫자는 다음의 설명에서는 옵션 그룹 번호 또는 GNR 이라고합니다. 그룹 번호는 각 그룹을 구분하고 시작, 중지 또는 상태 보고서 취득의 대상이되는 서버를 지정하기 위해 mysqld_multi의 인수로서 사용됩니다. 이 그룹에 나열된 옵션은 mysqld를 시작하기 위해 [mysqld] 그룹에서 사용하는 것과 동일합니다. (예를 들어 섹션 2.10.1.2 「MySQL을 자동적으로 기동 및 정지한다」 등을 참조하십시오.) 그러나 여러 서버를 사용하는 경우에는 Unix 소켓 파일과 TCP / IP 포트 번호 등에 관하여 각각 자신 옵션 값을 사용해야합니다. 다중 서버 환경에서 어떤 옵션을 고유 할 필요가 있는지에 대해서는 5.3 절 "하나의 시스템에서 여러 MySQL 인스턴스 실행" 을 참조하십시오.

mysqld_multi를 호출하려면 다음 구문을 사용합니다.

 shell> mysqld_multi [ options ] {start|stop|reload|report} [ GNR [, GNR ] ...]

start , stop , reload (중지하고 다시 시작) 및 report 는 수행 할 작업을 나타냅니다 ( reload 는 MySQL 5.6.3에서 사용 가능합니다.) 옵션 이름 뒤에 GNR 목록에 따라 지정된 작업을 단일 서버 또는 여러 서버에서 실행할 수 있습니다. 목록이없는 경우, mysqld_multi는 옵션 파일에있는 모든 서버에 대해 작업을 수행합니다.

각 GNR 값은 옵션 그룹 번호 또는 그룹 번호의 범위를 나타냅니다. 값은 옵션 파일에있는 그룹 이름의 마지막 숫자합니다. 예를 들어, [mysqld17] 라는 그룹의 GNR 은 17 입니다. 번호의 범위를 지정하려면 첫 번째와 마지막 번호를 대시로 구분합니다. GNR 값 10-13 는 [mysqld10] 에서 [mysqld13] 그룹을 나타냅니다. 명령 줄에서 여러 그룹 또는 그룹의 범위를 쉼표로 구분하여 지정할 수 있습니다. GNR 리스트에는 공백 문자 (스페이스 또는 탭)를 사용해서는 없습니다. 공백에서 뒤에있는 것은 모두 무시됩니다.

다음 명령은 [mysqld17] 이라는 옵션 그룹을 사용하여 단일 서버를 시작합니다.

 shell> mysqld_multi start 17

다음 명령은 [mysqld8] 및 [mysqld10] 에서 [mysqld13] 까지의 옵션 그룹을 사용하여 여러 서버를 중지합니다.

 shell> mysqld_multi stop 8,10-13

옵션 파일을 설치하는 방법에 대한 예로서 다음 명령을 사용합니다.

 shell> mysqld_multi --example

mysqld_multi는 다음과 같이 옵션 파일을 검색합니다.

  • --no-defaults 는 옵션 파일은 읽지 않습니다.

  • --defaults-file= file_name 은 지정된 파일을 읽습니다.

  • 그렇지 않으면 --defaults-extra-file= file_name 옵션이 지정된 경우는 거기에 지정된 파일을 포함하여 표준 위치 목록에있는 옵션 파일을 읽습니다. (옵션이 여러 번 지정된 경우에는 마지막 값이 사용됩니다.)

읽는 옵션 파일은 [mysqld_multi] 및 [mysqld N ] 옵션 그룹이 검색됩니다. [mysqld_multi] 그룹은 mysqld_multi 자신에 대한 옵션에 사용할 수 있습니다. [mysqld N ] 그룹은 mysqld의 특정 인스턴스에 전달되는 옵션에 사용할 수 있습니다.

[mysqld] 그룹 또는 [mysqld_safe] 그룹은 mysqld 또는 mysqld_safe의 모든 인스턴스에서 읽을 공통 옵션에 사용할 수 있습니다. --defaults-file= file_name 옵션을 지정하여 해당 인스턴스에 다른 구성 파일을 사용할 수 있습니다. 이 경우 해당 파일의 [mysqld] 또는 [mysqld_safe] 그룹이 그 인스턴스에 사용됩니다.

mysqld_multi는 다음 옵션을 지원합니다.

  • --help

    도움말 메시지를 표시하고 종료합니다.

  • --example

    샘플 옵션 파일을 표시합니다.

  • --log= file_name

    로그 파일의 이름을 지정합니다. 파일이 존재하는 경우, 로그 출력은 거기에 추가됩니다.

  • --mysqladmin= prog_name

    서버의 정지에 사용하는 mysqladmin 바이너리.

  • --mysqld= prog_name

    사용하는 mysqld 바이너리. 이 옵션의 값으로 mysqld_safe를 지정할 수 있습니다. mysqld_safe를 사용하여 서버를 시작하려면 해당 [mysqld N ] 옵션 그룹에 mysqld 옵션 또는 ledir 옵션을 포함 할 수 있습니다. 이 옵션은 mysqld_safe를 시작해야 서버 이름과 서버가있는 디렉토리의 경로 이름을 나타냅니다. (이러한 옵션에 대한 설명은 섹션 4.3.2 "mysqld_safe - MySQL 서버 시작 스크립트" 를 참조하십시오.) 예 :

    [mysqld38]
    mysqld = mysqld-debug
    ledir  = /opt/local/mysql/libexec
    
  • --no-log

    로그 파일이 아닌 stdout 에 로그를 출력합니다. 기본적으로 출력은 로그 파일로 보내집니다.

  • --password= password

    mysqladmin을 호출 할 때 사용 MySQL 계정의 암호입니다. 다른 MySQL 프로그램과는 달리,이 옵션은 암호 값은 옵션이 없습니다.

  • --silent

    자동 모드. 경고를 해제합니다.

  • --tcp-ip

    Unix 소켓 파일이 아닌 TCP / IP 포트를 통해 각 MySQL 서버에 연결합니다. (소켓 파일이없는 경우에도 서버가 실행되고있을 수 있지만, TCP / IP 포트에서만 액세스 할 수 있습니다.) 연결은 기본적으로 Unix 소켓 파일을 사용하여 이루어집니다. 이 옵션은 stop 작업과 report 동작에 영향을줍니다.

  • --user= user_name

    mysqladmin을 호출 할 때 사용 MySQL 계정의 사용자 이름입니다.

  • --verbose

    더 자세한입니다.

  • --version

    버전 정보를 출력하고 종료합니다.

mysqld_multi에 관한주의 :

  • 가장 중요한 : mysqld_multi를 사용하기 전에 mysqld 서버에 전달되는 옵션의 의미와 왜 독립적 인 mysqld 프로세스가 필요한지를 확실하게 이해하십시오. 같은 데이터 디렉토리에서 복수의 mysqld 서버를 사용하는 것의 위험성에주의하십시오. 특별한 이유가없는 한 별도의 데이터 디렉토리를 사용하십시오. 스레드를 사용하는 시스템에서는 동일한 데이터 디렉토리에서 복수의 서버를 기동해도 성능이 향상되지 않습니다. 5.3 "하나의 시스템에서 여러 MySQL 인스턴스 실행" 을 참조하십시오.

  • 중요

    각 서버의 데이터 디렉토리가 특정 mysqld를 시작했다 Unix 계정에서 완전히 액세스 할 수 있는지 확인하십시오. 특별한 이유가없는 한, 유닉스 root 계정을 이렇게 사용하지 마십시오. 섹션 6.1.5 "MySQL을 일반 사용자로 실행하는 방법" 을 참조하십시오.

  • mysqld 서버를 (mysqladmin 프로그램) 중지하는 데 사용하는 MySQL 계정이 각 서버에 동일한 사용자 이름과 암호를 확인하십시오. 또한 해당 계정은 SHUTDOWN 권한이 있는지 점검해야합니다. 관리 서버의 관리 계정의 사용자 이름 또는 암호가 다른 경우 각 서버에 동일한 사용자 이름과 암호를 가진 계정을 만들면 좋을 것입니다. 예를 들어, 다음 명령을 각 서버에서 실행함으로써 공통의 multi_admin 계정을 설정할 수 있습니다.

     shell> mysql -u root -S /tmp/mysql.sock -p
     Enter password :
     mysql> GRANT SHUTDOWN ON *.*
         -> TO 'multi_admin'@'localhost' IDENTIFIED BY 'multipass';
    

    섹션 6.2 "MySQL 권한 시스템" 을 참조하십시오. 이것은 각각의 mysqld 서버에서 수행해야합니다. 각각에 연결하면 연결 매개 변수를 적절하게 변경합니다. 계정 이름의 호스트 이름 부분은 mysqld_multi를 실행하는 호스트에서 multi_admin 로 접속하는 것이어야합니다.

  • Unix 소켓 파일과 TCP / IP 포트 번호는 모든 mysqld에서 달라야합니다. (또는 호스트가 여러 네트워크 주소를 가지는 경우, --bind-address 를 사용하여 다른 서버가 다른 인터페이스를 청취하도록 할 수 있습니다.)

  • mysqld_safe를 사용하여 mysqld를 시작하는 경우 (예를 들어 --mysqld=mysqld_safe ), --pid-file 옵션은 매우 중요합니다. 모든 mysqld는 자신의 프로세스 ID 파일을 가지고 있어야합니다. mysqld가 아닌 mysqld_safe를 사용하는 이점은 mysqld_safe는 mysqld 프로세스를 모니터하여 kill -9 를 사용하는 신호 전송 및 분할 위반 등 기타 원인으로 프로세스가 종료 된 경우 다시 시작 것입니다. mysqld_safe 스크립트는 특정 위치에서 시작하는 것이 필요한 경우가 있습니다. 이것은 mysqld_multi를 실행하기 전에 특정 디렉토리로 위치를 변경해야 할 수 있다는 것을 의미합니다. 시작할 때 문제가있는 경우, mysqld_safe 스크립트를 확인하십시오. 특히 다음 줄을 확인합니다.

    ----------------------------------------------------------------
    MY_PWD=`pwd`
    # Check if we are starting this relative (for the binary release)
    if test -d $MY_PWD/data/mysql -a \
       -f ./share/mysql/english/errmsg.sys -a \
       -x ./bin/mysqld
    ----------------------------------------------------------------
    

    이러한 행에 의해 실행되는 테스트는 성공하는 것입니다. 그렇지 않으면 문제가 발생합니다. 4.3.2 "mysqld_safe - MySQL 서버 시작 스크립트" 를 참조하십시오.

  • --user 옵션을 mysqld에 사용하는 경우가 있지만, 그러기 위해서는 mysqld_multi 스크립트를 Unix 수퍼 유저 ( root )로 실행해야합니다. 이 옵션은 옵션 파일에 있는지 문제가 아니라 만약 슈퍼 사용자가 아닌 사람이 mysqld 프로세스를 자신의 Unix 계정에서 시작하면 경고가 나옵니다.

다음의 예는 mysqld_multi 함께 사용하는 옵션 파일의 설정 방법을 보여줍니다. mysqld 프로그램이 시작 또는 종료하는 순서는 옵션 파일에서 지정하는 순서에 따라 다릅니다. 그룹 번호는 깨지지 시퀀스의 형식으로 할 필요는 없습니다. 예를 들어, 첫 번째와 5 번째 [mysqld N ] 그룹은 의도적으로 생략합니다. 이것은 옵션 파일에서 "갭"이 있어도 상관 없다는 것을 보여줍니다. 이렇게하면 유연성이 높아집니다.

# This is an example of a my.cnf file for mysqld_multi.
# Usually this file is located in home dir ~/.my.cnf or /etc/my.cnf

[mysqld_multi]
mysqld     = /usr/local/mysql/bin/mysqld_safe
mysqladmin = /usr/local/mysql/bin/mysqladmin
user       = multi_admin
password   = my_password

[mysqld2]
socket     = /tmp/mysql.sock2
port       = 3307
pid-file   = /usr/local/mysql/data2/hostname.pid2
datadir    = /usr/local/mysql/data2
language   = /usr/local/mysql/share/mysql/english
user       = unix_user1

[mysqld3]
mysqld     = /path/to/mysqld_safe
ledir      = /path/to/mysqld-binary/
mysqladmin = /path/to/mysqladmin
socket     = /tmp/mysql.sock3
port       = 3308
pid-file   = /usr/local/mysql/data3/hostname.pid3
datadir    = /usr/local/mysql/data3
language   = /usr/local/mysql/share/mysql/swedish
user       = unix_user2

[mysqld4]
socket     = /tmp/mysql.sock4
port       = 3309
pid-file   = /usr/local/mysql/data4/hostname.pid4
datadir    = /usr/local/mysql/data4
language   = /usr/local/mysql/share/mysql/estonia
user       = unix_user3
 
[mysqld6]
socket     = /tmp/mysql.sock6
port       = 3311
pid-file   = /usr/local/mysql/data6/hostname.pid6
datadir    = /usr/local/mysql/data6
language   = /usr/local/mysql/share/mysql/japanese
user       = unix_user4

섹션 4.2.6 "옵션 파일 사용" 을 참조하십시오.

서울시 강남구 영동대로 602 6층
TEL: 02-6061-0006  /  E: csr@mysqlkorea.com
주식회사 이노클러스터  등록번호 : 727-86-02261
Copyright © innocluster Co. ltd. all rights reserved