5.3 하나의 시스템에서 여러 MySQL 인스턴스 실행
상황에 따라서는 MySQL의 여러 인스턴스를 단일 시스템에서 실행하는 경우도 있습니다. 기존의 실전 설정을 그대로두고 새로운 MySQL 릴리즈를 테스트 할 수 있습니다. 또는 사용자가 직접 관리하는 다른 mysqld 서버에 대한 액세스 권한을 다른 사용자에게 부여 할 수 있습니다. (예를 들어, 사용자는 별도의 MySQL 설치를 다른 고객을 위해 제공하는 인터넷 서비스 프로 바이더 인 경우도 있습니다.)
인스턴스마다 다른 MySQL Server 바이너리를 사용하거나 여러 인스턴스에 동일한 바이너리를 사용하거나이 두 가지 방법을 조합 할 수 있습니다. 예를 들어, MySQL 5.5과 MySQL 5.6에서 각 서버를 실행하고 다른 버전에 따라 소정의 워크로드가 어떻게 처리되는지를 확인 할 수 있습니다. 또는 현재 실전 버전의 여러 인스턴스를 실행하고 각각 다른 데이터베이스 집합을 관리하는 경우도 있습니다.
별도의 서버 바이너리를 사용할지 여부에 관계없이 실행하는 각 인스턴스는 여러 작업 매개 변수에 대해 고유 한 값을 사용하여 구성해야합니다. 이렇게하면 인스턴스간에 충돌 할 우려가 없습니다. 매개 변수는 명령 행 옵션 파일 또는 환경 변수의 설정에 따라 설정할 수 있습니다. 섹션 4.2.3 "프로그램 옵션 지정" 을 참조하십시오. 소정의 인스턴스에 의해 사용되는 값을 표시하려면 인스턴스에 연결하여 SHOW VARIABLES
문을 실행합니다.
MySQL 인스턴스가 관리하는 주요 자원은 데이터 디렉토리입니다. 각 인스턴스가 다른 데이터 디렉토리를 사용하도록 해당 위치는 --datadir=
옵션을 사용하여 지정됩니다. 각 인스턴스를 인스턴스 고유의 데이터 디렉토리에 구성하는 방법과 구성을하지 않는 것이 위험에 대한 경고는 5.3.1 "여러 데이터 디렉토리 설정" 을 참조하십시오. path
다른 데이터 디렉토리를 사용하는 것 외에도 몇 가지 다른 옵션은 각 서버 인스턴스에 대해 다른 값을 가질 필요가 있습니다.
--port=
port_num
--port
는 TCP / IP 연결의 포트 번호를 제어합니다. 또는 호스트에 여러 개의 네트워크 주소가있는 경우,--bind-address
를 사용하여 각 서버가 다른 주소를 대기하게 할 수 있습니다.--socket=
path
--socket
은 Unix에서 Unix 소켓 파일 경로 또는 Windows에서 명명 된 파이프 이름을 제어합니다. Windows의 경우 명명 된 파이프 연결을 허용하도록 구성된 서버에 대해서만 개별 파이프 이름을 지정하는 것이 필요합니다.--shared-memory-base-name=
name
이 옵션은 Windows에서만 사용됩니다. 이것은 클라이언트가 공유 메모리를 사용하여 연결할 수 있도록하기 위해 Windows 서버에서 사용하는 공유 메모리 이름을 지정합니다. 공유 메모리 연결을 허용하도록 구성된 서버에 대해서만 개별 공유 메모리 이름을 지정하는 것이 필요합니다.
--pid-file=
file_name
이 옵션은 서버 프로세스 ID를 기록하는 파일의 경로 이름을 나타냅니다.
다음 로그 파일 옵션을 사용하는 경우이 값은 서버마다 달라야합니다.
--general_log_file=
file_name
--log-bin[=
file_name
]--slow_query_log_file=
file_name
--log-error[=
file_name
]
로그 파일 옵션에 대한 자세한 설명은 섹션 5.2 "MySQL Server 로그" 를 참조하십시오.
성능을 향상 시키려면 다음 옵션을 서버마다 다른 방식으로 지정하여 여러 물리적 디스크에 부하를 분산시킬 수 있습니다.
--tmpdir=
path
다른 임시 디렉토리를 작성하면 특정 임시 파일을 만든 MySQL Server를 판별하기 쉬워집니다.
여러 MySQL 설치 위치가 다른 경우 --basedir=
옵션을 사용하여 각 설치의 기본 디렉토리를 지정 할 수 있습니다. 이렇게하면 각 인스턴스는 자동으로 다른 데이터 디렉토리, 로그 파일 및 PID 파일을 사용합니다. 그 이유는 이러한 매개 변수의 기본값이 기본 디렉터리에 상대적으로 지정되기 때문입니다. 이 경우 지정해야하는 다른 옵션은 path
--socket
과 --port
옵션뿐입니다. tar
파일 바이너리 배포판을 사용하여 다른 버전의 MySQL을 설치합니다. 이들은 다른 위치에 설치되므로 각 설치에 대한 서버를 해당 기본 디렉토리에서 명령 bin / mysqld_safe를 사용하여 시작할 수 있습니다. mysqld_safe에 의해, mysqld에 전달되는 적절한 --basedir
옵션이 결정되며, --socket
과 --port
옵션 만 mysqld_safe에 지정해야합니다.
뒤 부분에서 설명하도록 적절한 명령 옵션을 지정하거나 환경 변수를 설정하여 추가 서버를 시작할 수 있습니다. 그러나 여러 서버를 더 지속적으로 실행해야 할 경우 옵션 파일을 사용하여 서버에 고유 될 필요가있는 옵션 값을 각 서버에 지정하는 것이 간단합니다. --defaults-file
옵션이 도움이됩니다.