5.3.3 Unix에서 여러 MySQL 인스턴스 실행
Unix상에서 복수의 MySQL 인스턴스를 실행하기위한 하나의 방법은 기본 TCP / IP 포트 및 Unix 소켓 파일이 다른 별도의 서버를 컴파일하여 각 서버가 별도의 네트워크 인터페이스를 청취하도록 하는 것입니다. 설치마다 다른 기본 디렉토리에 컴파일하여 컴파일 된 데이터 디렉토리, 로그 파일 및 PID 파일 위치가 서버마다 자동으로 분리됩니다.
기본 TCP / IP 포트 번호 (3306) 및 Unix 소켓 파일 ( /tmp/mysql.sock
)에 대해 기존 5.5 서버가 구성되어 있다고 가정합니다. 다른 작업 파라미터를 가지는 새로운 5.6.23 서버를 구성하려면 다음과 같은 CMake 명령을 사용합니다.
shell>cmake . -DMYSQL_TCP_PORT=
port_number
\-DMYSQL_UNIX_ADDR=
file_name
\-DCMAKE_INSTALL_PREFIX=/usr/local/mysql-5.6.29
여기서 port_number
와 file_name
은 기본 TCP / IP 포트 번호 및 Unix 소켓 파일 경로 이름과 달라야이 있고 CMAKE_INSTALL_PREFIX
값은 기존의 MySQL 설치가 존재하는 위치와 다른 설치 디렉토리를 지정합니다 .
MySQL Server가 소정의 포트 번호를 대기하고있는 경우 다음 명령을 사용하여 기본 디렉토리 및 Unix 소켓 파일 이름과 같은 몇 가지 중요한 구성 가능한 변수에 대해 MySQL Server가 사용중인 작업 매개 변수 를 찾을 수 있습니다.
shell> mysqladmin --host= host_name --port= port_number variables
이 명령에 의해 표시되는 정보를 사용하면 추가 서버를 구성 할 때 사용하지 않는 옵션 값을 알 수 있습니다.
호스트 이름으로 localhost
를 지정했을 경우, mysqladmin은 TCP / IP가 아닌 Unix 소켓 파일 연결을 기본적으로 사용합니다. 연결 프로토콜을 명시 적으로 지정하려면 --protocol={TCP|SOCKET|PIPE|MEMORY}
옵션을 사용합니다.
다른 Unix 소켓 파일 및 TCP / IP 포트 번호를 사용하여 시작하는 이유만으로 새로운 MySQL Server를 컴파일 할 필요는 없습니다. 동일한 서버 바이너리를 사용하여 런타임에 다른 매개 변수 값을 사용하여 각각의 바이너리의 실행을 시작할 수 있습니다. 이렇게 하나의 방법은 명령 행 옵션을 사용하는 방법입니다.
shell> mysqld_safe --socket= file_name --port= port_number
두 번째 서버를 시작하려면 다른 --socket
과 --port
옵션 값을 지정하고 mysqld_safe에 --datadir=
옵션을 전달하여 서버가 다른 데이터 디렉토리를 사용하도록합니다. path
또는 각 서버의 옵션을 다른 옵션 파일에 배치하고 적절한 옵션 파일의 경로를 지정하는 --defaults-file
옵션을 사용하여 각 서버를 시작합니다. 예를 들어, 2 개의 서버 인스턴스의 옵션 파일의 이름이 /usr/local/mysql/my.cnf
및 /usr/local/mysql/my.cnf2
의 경우 다음과 같은 명령으로 서버를 시작합니다.
shell>mysqld_safe --defaults-file=/usr/local/mysql/my.cnf
shell>mysqld_safe --defaults-file=/usr/local/mysql/my.cnf2
동일한 효과를 얻을 수있는 다른 방법은 환경 변수를 사용하여 Unix 소켓 파일 이름과 TCP / IP 포트 번호를 설정하는 방법입니다.
shell>MYSQL_UNIX_PORT=/tmp/mysqld-new.sock
shell>MYSQL_TCP_PORT=3307
shell>export MYSQL_UNIX_PORT MYSQL_TCP_PORT
shell>mysql_install_db --user=mysql
shell>mysqld_safe --datadir=/path/to/datadir &
이것은 테스트 용으로 사용하기위한 두 번째 서버를 시작하는 쉬운 방법입니다. 이 방법의 장점은 동일한 쉘에서 시작하는 모든 클라이언트 프로그램에 환경 변수 설정이 적용된다는 것입니다. 따라서 이러한 클라이언트에 대한 연결은 두 번째 서버에 자동으로 전송됩니다.
MySQL 프로그램에 영향을 미치는 데 사용할 수있는 다른 환경 변수의 목록은 섹션 2.12 "환경 변수" 에 기재되어 있습니다.
Unix의 경우 여러 서버를 시작하는 다른 방법으로 mysqld_multi 스크립트가 있습니다. 섹션 4.3.4 "mysqld_multi - 여러 MySQL 서버 관리" 를 참조하십시오.