DBMS 2

DA, SQL, DB보안 등 실무자를 위한 위한 DB기술 바이블!

MySQL 서버 스타트업 프로그램

DBMS 2
MySQL 가이드
데이터 베이스 관리
MySQL 서버 스타트업 프로그램
작성자
admin
작성일
2021-02-19 10:49
조회
1369

MySQL 서버 스타트업 프로그램

mysqld_safe- MySQL 서버 스타트업 스크립트
mysql.server- MySQL 서버 스타트업 스크립트
mysqld_multi- 다중 MySQL 서버 관리

이 섹션에서는 MySQL 서버인 mysqld를 구동할 때 사용하는 프로그램들에 대해 설명을 하기로 한다.


mysqld_safe- MySQL 서버 스타트업 스크립트

mysqld_safe는 유닉스와 NetWare에서 mysqld 서버를 구동 시키는 권장 방법이다. mysqld_safe는 에러가 발생했을 때 서버를 재 구동 시키고 런타임 정보를 에러 로그에 기록하는 것과 같은 안전 기능을 추가로 가지고 있다. NetWare-특성 동작은 이 섹션 후반부에서 다시 하기로 한다.

Note: 이전 MySQL버전들과의 호환성을 유지하기 위해서, MySQL 바이너리 배포판은 여전히 mysqld_safe에 대한 심볼릭 링크로 safe_mysqld를 포함하고 있다. 하지만, 이 기능은 향후에 완전히 삭제될 예정이므로 이것에 의존하지 말길 바란다.

디폴트로, mysqld_safe는 mysqld-max가 존재하면 이것을 시작하고자 하며, 그것이 존재하지 않으면 mysqld를 시도한다. 이러한 동작 구현에 대해서는 잘 숙지해야 한다:


  • 리눅스에서는, MySQL-Max RPM은 mysqld_safe의 동작에 의존한다. RPM 은 mysqld-max를 설치하는데, 이것은 mysqld가 아닌 mysqld_safe를 자동으로 실행 가능하도록 사용한다.
  • 여러분이 mysqld-max 라는 이름의 서버를 포함하고 있는 MySQL-Max 배포판을 설치했고, 그 다음에 MySQL의 non-Max으로 업그레이드를 했다면, mysqld_safe 는 여전히 mysqld-max 서버를 구동 시키려는 시도를 할 것이다. 만약에 여러분이 이러한 업그레이드를 했다면, 수동으로 구형 mysqld-max를 삭제해서 mysqld_safe 가 새로운 mysqld 서버를 구동 시키게끔 해야 한다.

디폴트 동작을 없애고 여러분이 원하는 서버의 이름을 명확하게 지정하기 위해서는, --mysqld 또는 --mysqld-version 옵션을 mysqld_safe에 지정한다. 또한 -ledir를 사용해서 mysqld_safe가 서버를 찾는 디렉토리를 지정하도록 할 수도 있다.

mysqld_safe에 대한 많은 옵션들은 mysqld에 대한 옵션들과 모두 동일하다. Section 5.2.1, “mysqld 명령어 옵션”을 참조할 것.

명령어 라인에서 mysqld_safe에 지정되는 모든 옵션들은 mysqld에 전달된다. 만약에 mysqld_safe에만 해당되고 mysqld는 지원하지 않는 옵션을 사용하고자 한다면, 명령어 라인에서 그것들을 지정하지 않으면 된다. 대신에, 옵션 파일 그룹의 [mysqld_safe] 안에 그 옵션들을 넣어 둔다. Section 4.3.2, “옵션 파일 사용하기”를 참조할 것.

mysqld_safe는 옵션 파일에 있는 [mysqld], [server], 그리고 [mysqld_safe] 섹션에서 모든 옵션을 읽는다. 이전 버전과의 호환성을 위해서, mysqld_safe는 여러분이 5.0을 설치할 때 [safe_mysqld] 섹션을 [mysqld_safe] 로 재 명명했다고 하더라도 이 섹션도 함께 읽게 된다.

mysqld_safe는 아래의 옵션들을 지원한다:


  • --help
    도움말 메시지를 화면에 출력한 다음에 종료한다. ( MySQL 5.0.3에 추가 됨)
  • --autoclose
    (NetWare에만 해당됨) NetWare상에서는, mysqld_safe는 스크린 존재 (presence)를 제공한다. 여러분이 mysqld_safe NLM를 셧다운 하면, 스크린은 디폴트로 사라지지 않는다. 대신에 사용자 입력용 프롬프트를 보여준다:
    *<NLM has terminated; Press any key to close the screen>*
    NetWare가 자동으로 스크린을 닫게 하기 위해서는, --autoclose옵션을 mysqld_safe에 사용한다.
  • --basedir=path
    MySQL 설치 디렉토리 경로.
  • --core-file-size=size
    mysqld가 생성하는 코어 (core) 파일의 크기. 옵션값은 ulimit -c에 전달 된다.
  • --datadir=path
    데이터 디렉토리의 경로.
  • --defaults-extra-file=path
    일반적인 옵션 파일과 함께 읽어야 할 옵션 파일의 이름. 이것이 사용될 경우에는 반드시 명령어 라인 처음에 나와야 한다.
  • --defaults-file=file_name
    일반적인 옵션 파일 대신에 읽혀 지는 옵션 파일의 이름. 만약에 이것을 사용할 경우에는 명령어 라인의 첫 번째 옵션이 되어야 한다.
  • --ledir=path
    mysqld_safe가 서버를 찾지 못할 경우, 이 옵션을 사용하여 서버가 저장되어 있는 디렉토리경로 이름을 가리키도록 한다.
  • --log-error=file_name
    에러 로그를 지정한 파일에 기록한다. Section 5.12.1, “에러 로그”를 참조할 것.
  • --mysqld=prog_name
    여러분이 시작하고자 하는 서버 프로그램의 이름 (ledir 디렉토리에 있음). 이 옵션은 여러분이 바이너리 배포판을 사용하고는 있지만 데이터 디렉토리가 바이너리 배포판이 아닌 곳에 있는 경우에 필요하게 된다. 만약에 mysqld_safe가 서버를 찾지 못할 경우, --ledir 옵션을 사용해서 서버가 저장되어 있는 디렉토리 경로 이름을 가리키도록 한다.
  • --mysqld-version=suffix
    이 옵션은 --mysqld 옵션과 비슷하지만, 여러분은 서버 프로그램 이름에 대한 접미사만 지정하면 된다. 베이스 이름은 mysqld라고 간주한다. 예를 들면, --mysqld-version=max를 사용한다면, mysqld_safe는 ledir 디렉토리에 있는 mysqld-max 프로그램을 구동 하기 시작한다. --mysqld-version에 대한 인수가 비어 있다면, mysqld_safe는 ledir 디렉토리에 있는 mysqld를 사용한다.
  • --nice=priority
    지정한 값에 대한 서버 스케쥴링 우선 순위를 설정하기 위해 nice 프로그램을 사용한다.
  • --no-defaults
    어떠한 옵션 파일도 읽지 않는다. 만약에 이것이 사용될 경우에는 명령어 라인에서 첫 번째 옵션이 되어야 한다.
  • --open-files-limit=count
    mysqld가 열 수 있는 파일의 숫자. 옵션 값은 ulimit -n에 전달 된다. 이것이 올바르게 동작을 하기 위해서는 root로 mysqld_safe를 구동 시켜야 한다!
  • --pid-file=file_name
    프로세스 ID 파일의 경로 이름.
  • --port=port_num
    서버가 TCP/IP 연결을 기다릴 때 사용하는 포트 번호. 포트 번호는 서버가 root 시스템 사용자로 구동되지 않는 한 반드시 1024 또는 그 이상 이어야 한다.
  • --socket=path
    서켓 파일.
  • --timezone=timezone
    지정한 옵션 값에 TZ 타임 존 환경 변수를 설정한다. 올바른 타임 존 지정 포맷에 대해서는 OS 문서를 참고한다.
  • --user={user_name | user_id}
    user_name 이름 또는 숫자로 된 사용자 ID user_id를 갖고 있는 사용자로 mysqld 서버를 구동 시킨다. (여기에서 “사용자 (User)”는 시스템 계정을 의미하며, 그랜트 테이블 안에 있는 MySQL 사용자를 가리키는 것은 아니다.)

옵션 파일에 이름을 주기 위해 --defaults-file 또는 --defaults-extra-option 옵션을 가지고 mysqld_safe를 실행한다면, 옵션은 반드시 명령어 라인에서 첫번째로 주어져야 한다. 그렇지 않으면 옵션은 사용되지 않는다. 예를 들면, 다음 명령어는 네임드 옵션 파일을 사용하지 않게 된다:



mysql> mysqld_safe --port=port_num --defaults-file=file_name

대신에, 아래의 명령어를 사용한다:



mysql> mysqld_safe --defaults-file=file_name --port=port_num

일반적인 경우에 mysqld_safe 스크립트는 소스 또는 바이너리 배포판을 설치한 서버를 구동 시키기 위해 작성된다. mysqld_safe는 아래의 조건들 중에 하나가 트루 (true)일 것으로 기대한다:


  • 서버와 데이터 베이스는 동작 중인 디렉토리에 관련해서 찾게 된다 (mysqld_safe를 호출한 디렉토리에서). 바이너리 배포판의 경우, mysqld_safe는 자신의 동작 디렉토리 밑에서 bin 과 data 디렉토리를 찾는다. 소스 배포판의 경우, libexec 와 var 디렉토리를 찾게 된다. 만약에 여러분이 MySQL설치 디렉토리에서 mysqld_safe를 실행 시킨다면 이 조건은 일치하게 된다 (예를 들면, 바이너리 배포판의 경우 /usr/local/mysql).
  • 만약에 서버와 데이터 베이스를 동작 중에 있는 디렉토리와 관련해서 찾지 못하게 되면, mysqld_safe는 이것들을 절대 경로 이름 (absolute pathname)을 가지고 저장 시키려고 한다. 전형적인 위치는 /usr/local/libexec 과 /usr/local/var가 된다. 실제 위치는 배포판이 설치되는 시점에 구성된 값을 가지고 결정된다. 만약에 MySQL이 서버 구성시에 지정된 위치에 설치되어 있다면 이 조건이 트루 (true)가 된다.

mysqld_safe는 자신의 동작 디렉토리에 관련하여 서버와 데이터 베이스를 찾으려고 시도하기 때문에, 여러분이 MySQL 설치 디렉토리에서 mysqld_safe를 구동 시키는 한 바이너리 배포판을 어디에도 설치할 수가 있다:



shell> cd mysql_installation_directory
shell> bin/mysqld_safe &


만약에 mysqld_safe가 실패하면, 비록 MySQL 설치 디렉토리에서 호출을 한 경우라도, 여러분은 --ledir 와 --datadir 옵션을 지정해서 서버와 데이터 베이스가 저장되어 있는 디렉토리를 가리키도록 할 수 있다.

일반적인 경우에는mysqld_safe 스크립트 수정하지 말도록 한다. 대신에, my.cnf 옵션 파일의 [mysqld_safe] 섹션에 있는 옵션 또는 명령어 라인의 옵션을 사용해서 mysqld_safe를 구성한다. 드문 경우이긴 하지만, mysqld_safe를 직접 편집 해서 서버가 올바르게 구동되도록 해야 할 경우도 있긴 하다. 하지만, 이렇게 하게 되면, 여러분이 수정한 mysqld_safe가 MySQL을 나중에 업그레이드 할 때 없어지기 때문에, 복사본을 마리 만들어 두어야 한다.


mysql.server- MySQL 서버 스타트업 스크립트

유닉스 시스템 상의 MySQL 배포판은 mysql.server라는 이름의 스크립트를 가지고 있다. 이것은 시스템 서비스를 시작/종료 하는 시스템-V 형태의 구동 디렉토리 (System V-style run directory)를 사용하는 리눅스와 솔라리스와 같은 시스템에서 사용된다. 이것은 또한 MySQL을 위한 Mac OS X 스타트업 아이템에 의해서도 사용된다.

mysql.server는 여러분의 MySQL 설치 디렉토리 아래에 있는 support-files 디렉토리 또는 MySQL 소스 배포판에서도 찾을 수 있다.

여러분이 리눅스 서버 RPM 패키지 (MySQL-server-VERSION.rpm)를 사용한다면, mysql.server 스크립트는 mysql라는 이름을 가지고 /etc/init.d 디렉토리에 설치될 것이다. 여러분은 이것을 수동으로 설치할 필요는 없다. Section 2.4, “리눅스에 MySQL 설치하기”를 참조할 것.

몇몇 벤더들은 mysqld와 같은 별도의 이름 아래에 스타트업 스크립트를 설치하는 RPM 패키지를 제공한다.

여러분이 소스 배포판을 사용하거나 또는 자동으로 mysql.server를 설치하지 않는 바이너리 배포판을 사용해서 MySQL을 설치한다면, 여러분은 이것을 수동으로 설치해야 한다. 설치 설명서는 Section 2.9.2.2, “자동으로 MySQL 시작하기 및 종료하기”를 참조할 것.

mysql.server는 옵션 파일의 [mysql.server] 와 [mysqld] 섹션에서 옵션을 읽는다. 이전 버전과의 호환성을 위해서, [mysql_server] 섹션도 함께 읽는다.


mysqld_multi- 다중 MySQL 서버 관리

mysqld_multi는 서로 다른 유닉스 소켓 파일과 TCP/IP 포트상에서 연결을 기다리는 mysqld 프로세스를 관리하기 위한 것이다. 이것은 서버를 시작 또는 종료할 수 있으며, 또는 서버의 현재 상태를 보고할 수도 있다. MySQL 인스턴스 매니저는 다중 서버를 관리하는 것을 달리 의미하는 용어다.

mysqld_multi 는 my.cnf (또는 --config-file 옵션으로 이름 붙여진 파일)에서 [mysqldN]라는 이름의 그룹을 검색한다. N 는 모든 양수 정수가 될 수 있다. 이 번호는 다음의 섹션에서 옵션 그룹 번호 또는 GNR로 참조될 것이다. 그룹 번호는 각 그룹을 구분하며 여러분이 시작, 종료, 또는 상태 레포트를 받고자 원하는 서버가 어떤 것인지를 지정하기 위한 mysqld_multi의 인수로서 사용된다. 이러한 그룹 내에 열거되어 있는 옵션들은 mysqld를 구동시키기 위해 사용하는 [mysqld] 그룹 내에서 사용하는 것과 동일한 것들이다. 하지만, 다중 서버를 사용할 때에는, 각자의 서버는 유닉스 소켓 파일 및 TCP/IP 포트 번호와 같은 것에 대해 자신만의 옵션 값을 가져야 한다. 다중 서버 환경에서 서버 별로 고유의 값을 가져야만 하는 옵션에는 어떤 것이 있는지 보다 자세히 알아보기 위해서는 Section 5.13, “동일 서버에서 다중의 MySQL서버 구동 시키기”를 참조하기 바란다.

mysqld_multi를 호출하기 위해서는 아래의 신텍스를 사용한다:



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

start, stop, 그리고 report는 수행할 동작을 가리키는 것이다. 여러분은 옵션 이름 다음에 나오는 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는 아래의 옵션을 지원한다:


  • --help
    도움말 메시지를 출력한 후에 종료한다.
  • --config-file=name
    대신 사용할 옵션 파일의 이름을 지정한다. 이것은 mysqld_multi가 [mysqldN] 옵션 그룹을 어디에서 찾을지 알려준다. 이 옵션 파일이 없으면, 모든 옵션은 일반적인 my.cnf 파일에서 읽혀 진다. 이 옵션은 mysqld_multi가 자신의 옵션을 읽어야 하는 곳에 대해서는 영향을 주지 않는데, 이것은 항상 일반적인 my.cnf 파일 안에 있는 [mysqld_multi] 그룹에서 얻어진다.
  • --example
    샘플 옵션 파일을 출력 한다.
  • --log=file_name
    로그 파일의 이름을 지정한다. 파일이 존재한다면, 로그 결과가 뒤에 붙게 된다.
  • --mysqladmin=prog_name
    서버를 종료하기 위해 사용되는 mysqladmin 바이너리.
  • --mysqld=prog_name
    사용될 mysqld 바이너리. mysqld_safe 역시 이 옵션에 대한 값으로 지정할 수 있다는 것을 알아두기 바란다. 만약에 mysqld_safe를 사용해서 서버를 구동 시켰다면, 여러분은 이에 대응하는 [mysqldN] 옵션 그룹에 mysqld 또는 ledir 옵션들을 포함 시킬 수가 있게 된다. 이러한 옵션들은 mysqld_safe가 구동 시켜야 하는 서버의 이름과 서버가 저장되어 있는 디렉토리의 경로 이름을 가리킨다.
    예제: 

    [mysqld38]
    mysqld = mysqld-max
    ledir = /opt/local/mysql/libexec
  • --no-log
    로그 파일이 아닌 stdout에 로그 정보를 기록 한다. 디폴트로는 로그 파일 결과가 기록된다.
  • --password=password
    mysqladmin을 호출할 때 사용되는 MySQL 계정의 패스워드. 다른 MySQL 프로그램과는 달리, 이 옵션에 대한 패스워드 값은 필수 사항이다.
  • --silent
    침묵 (Silent) 모드; 경고문을 비활성화 시킴.
  • --tcp-ip
    각각의 MySQL 서버를 유닉스 소켓 파일 대신에 TCP/IP 포트를 통해 연결 시킴. (만약에 소켓 파일이 누락되어 있으면, 서버는 동작은 하겠지만, TCP/IP 포트를 통해서만 접근할 수 있게 된다.) 디폴트로는, 유닉스 소켓 파일을 통해서 연결된다. 이 옵션은 stop 과 report 동작에 영향을 준다.
  • --user=user_name
    mysqladmin을 호출할 때 사용하는 MySQL 계정의 사용자 이름.
  • --verbose
    좀더 자세하게 정보를 표현하도록 한다.
  • --version
    mysqld_multi에 대해서는 몇 가지 노트가 있다:

mysqld_multi에 대해서는 몇 가지 노트가 있다:


  • Most important: mysqld_multi를 사용하기 전에, 여러분은 mysqld 서버에 전달되는 옵션의 의미와 개별적인 mysqld 프로세스를 가져야 하는 이유가 무엇인지를 정확히 알아야 한다. 동일한 데이터 디렉토리를 갖는 다중 mysqld 서버를 사용하는 것은 위험하다는 것을 알기 바란다. 여러분이 무엇을 하고 있는지 정확히 알지 못할 경우에는. 데이터 디렉토리를 구분해서 사용하기 바란다. 동일한 데이터 디렉토리를 가지고 여러 대의 서버를 구동시킨다고 하더라도 쓰레드 시스템에서는 아무런 성능의 효과를 얻을 수가 없다. Section 5.13, “동일 머신에서 다중 MySQL 서버 구동하기”를 참조.
  • Important: 각 서버에 대한 데이터 디렉토리는 특정 mysqld 프로세스가 구동되는 시스템의 전체 유닉스 계정이 접근 가능하다는 것을 알아두기 바란다. 여러분이 무엇을 하고 있는지 정확히 알지 못할 경우에는, 이렇게 동작 시키기 위해서 유닉스 root 계정을 사용하지 말기 바란다. Section 5.7.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';

    여러분은 각각의 mysqld에 대해 이러한 조치를 해야 한다. 각각을 연결할 때에 연결 파라미터 값을 적당히 변경한다. 계정 이름의 호스트 이름 부분은 반드시 여러분이 구동 시키고자 하는 mysqld_multi가 있는 호스트에서 multi_admin을 연결할 수 있게 해 주어야 한다.
  • 유닉스 소켓 파일과 TCP/IP 포트 번호는 모든 mysqld에 대해서 반드시 서로 틀려야 한다.
  • 만약에 여러분이 mysqld_safe를 사용해서 (예를 들면, --mysqld=mysqld_safe) mysqld를 구동 시킨다면, --pid-file 옵션은 매우 중요한 것이 된다. 모든 mysqld는 자신의 고유 프로세스 ID 파일을 가지고 있어야 한다. mysqld 대신에 mysqld_safe를 쓰는 장점은, mysqld_safe는 자신의 mysqld 프로세스를 모니터 하면서 만약에 프로세스가 kill -9를 사용하는 신호 또는 세그먼트 폴트 (fault)와 같은 다른 이유로 종료될 경우에 재 구동을 시킨다는 것이다. 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
    ------------------------------------------------------------

    이 라인이 수행하는 테스트는 성공을 해야 하는데, 그렇지 않을 경우에는 문제가 생기게 된다. See Section 5.4.1, “mysqld_safe - MySQL 서버 스타트업 스크립트”을 참조.
  • 여러분은 mysqld를 위해서 --user 옵션을 사용하고자 하겠지만, 이렇게 하기 위해서는 유닉스 root 사용자로 mysqld_multi 스크립트를 구동 시켜야 한다. 옵션 파일 안에 옵션을 가지고 있는 것은 아무 문제가 없다; 여러분이 슈퍼 유저가 아니고 mysqld 프로세스가 여러분 자신의 유닉스 계정 아래에서 시작될 경우에는 단지 경고만 받게 된다.

아래 예제에서는 여러분이 mysqld_multi를 가지고 옵션 파일을 어떻게 설정을 하는지를 보여 주고 있다. mysqld 프로그램이 시작되거나 또는 종료하는 순서는 옵션 파일에 어떤 순서로 되어 있는지에 달려 있다. 그룹 번호는 깨지지 않는 시퀀스 (unbroken sequence) 구성에 필요가 없다. 첫 번째와 다섯 번째의 [mysqldN] 그룹은 이 예제에서 의도적으로 생략 되었는데, 이것은 여러분이 옵션 파일에서 “갭 (gap)”을 가질 수 있음을 알려 주기 위함이다. 이것은 여러분에게 보다 많은 유연성을 제공한다.



# This file should probably be in your home dir (~/.my.cnf)
# or /etc/my.cnf
# Version 2.1 by Jani Tolonen

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

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

[mysqld3]
socket = /tmp/mysql.sock3
port = 3308
pid-file = /usr/local/mysql/var3/hostname.pid3
datadir = /usr/local/mysql/var3
language = /usr/local/share/mysql/swedish
user = monty

[mysqld4]
socket = /tmp/mysql.sock4
port = 3309
pid-file = /usr/local/mysql/var4/hostname.pid4
datadir = /usr/local/mysql/var4
language = /usr/local/share/mysql/estonia
user = tonu

[mysqld6]
socket = /tmp/mysql.sock6
port = 3311
pid-file = /usr/local/mysql/var6/hostname.pid6
datadir = /usr/local/mysql/var6
language = /usr/local/share/mysql/japanese
user = jani

출처 : MySQL 코리아