한 머신에서 두 개의 mysql 서비스를 시작하는 방법은 무엇입니까?
두 개의 데이터베이스에 해당하는 한 머신에서 두 개의 mysql 서비스를 실행하려면 어떻게 해야 합니까?
최고의 답변
Jul 26 10:36 동일한 시스템에서 여러 서버를 실행하려는 상황이 있습니다. 예를 들어, 기존 프로덕션 시스템 설정을 방해하지 않고 새로운 MySQL 버전을 테스트할 수도 있고, 다양한 고객에게 독립적인 MySQL 설치를 제공하려는 인터넷 서비스 제공업체일 수도 있습니다.
여러 서버를 실행하려는 경우 가장 쉬운 방법은 다른 TCP/IP 포트와 소켓 파일을 사용하여 서버를 다시 컴파일하여 동일한 TCP/IP 포트나 소켓에서 수신하지 않도록 하는 것입니다.
기존 서버가 기본 포트 번호와 소켓 파일로 구성되어 있다고 가정하고 다음과 같은 구성 명령줄을 사용하여 새 서버를 설정합니다.
shell> ./configure --with-tcp-port=port_number
--with-unix-socket=파일_이름
--prefix=/usr/local/mysql-3.22.9
여기서 port_number 및 file_name은 기본 포트 번호 및 소켓 파일 경로 이름과 달라야 하며 --prefix 값은 기존 MySQL 설치와 다른 설치를 지정해야 합니다. 내용물.
다음 명령을 사용하여 현재 실행 중인 MySQL이 사용하는 소켓과 포트를 확인할 수 있습니다:
shell> mysqladmin -h 호스트 이름 --port=port_number 변수
사용 중인 포트에서 실행 중인 MySQL 서버가 있는 경우 다음과 같은 테이블을 얻을 수 있습니다. 소켓 이름 등을 포함하여 MySQL의 가장 중요한 구성 변수 중 일부입니다.
또한 여러 mysqld 서버를 시작하고 종료하려면 시스템의 init 스크립트(아마도 "mysql.server")를 편집해야 합니다.
새로운 MySQL 서버를 다시 컴파일할 필요 없이 다른 포트와 소켓으로 시작하기만 하면 됩니다. 실행할 때 safe_mysqld에서 사용하는 옵션을 지정하여 포트와 소켓을 변경할 수 있습니다:
shell> /path/to/safe_mysqld --socket=file_name --port=port_number
실행 시 로깅이 활성화된 다른 서버와 동일한 서버에 있는 경우 데이터베이스 디렉터리에 새 서버를 추가하려면 safe_mysqld의 --log 및 --log-update 옵션을 사용하여 로그 파일 이름도 지정해야 합니다. 그렇지 않으면 두 서버 모두 동일한 로그 파일에 쓰려고 할 수 있습니다.
경고: 일반적으로 동일한 데이터베이스에서 데이터를 업데이트하는 두 대의 서버가 있어서는 안 됩니다! OS가 오류 없는 시스템 잠금을 지원하지 않는 경우 놀라운 일이 발생할 수 있습니다!
두 번째 서버에 다른 데이터베이스 디렉터리를 사용하려면 safe_mysqld의 --datadir=path 옵션을 사용할 수 있습니다.
좋은
50% (0) 나쁨
50% (0)