Windows 2012에서 여러 MySQL 인스턴스를 설치하고 시작하는 방법


12

방금 Windows 2012 VM에 MySQL 5.7을 설치했습니다. 여러 인스턴스를 만들고 실행하려고하지만 그러한 간단한 일이 작동하지 않는다는 것에 매우 좌절했습니다.

기본 위치 인 C : \ Program Files \ MySQL \ MySQL Server 5.7에 MySQL을 설치 한 다음 폴더를 복사하고 다른 인스턴스를 만들기 위해 다른 복사본을 만들었습니다.

두 MySQL 인스턴스는 아래 이미지에 표시되어 있습니다.

서버 1 서버 1

서버 2
서버 2

두 서버의 INI 설정은 다음과 같습니다.

서버 1

server-id = 1
log-bin = "mysql-bin"
binlog-ignore-db = test
binlog-ignore-db = information_schema
replicate-ignore-db = test
replicate-ignore-db = information_schema
relay-log = "mysql-relay -log "
자동 증분 증가 = 2
자동 증분 오프셋 = 1

Server2
server-id = 2
log-bin = "mysql-bin"
binlog-ignore-db = test
binlog-ignore-db = information_schema
replicate-ignore-db = test
replicate-ignore-db = information_schema
relay-log = "mysql- 릴레이 로그 "
자동 증분 증가 = 2
자동 증분 오프셋 = 2

명령 프롬프트를 열고 다음을 입력하여 두 서버를 모두 실행하고 있습니다.
"C : \ Program Files \ MySQL \ MySQL Server 5.7 \ bin \ mysqld"
"C : \ Program Files \ MySQL \ MySQL Server 5.7-2 \ bin \ mysqld"

오류가 표시되지 않아 명령이 성공적으로 실행되는 것 같지만 mysql 프로세스가 실행 중인지 확인하기 위해 작업 관리자를 보면 아무것도 표시되지 않습니다.

내가 뭘 잘못하고 있죠?


오류 로그 등을 포함하도록 질문을 편집하십시오.
EEAA

문제가 해결되었습니다.
Frank Martin

답변을 게시 할 수 있도록 질문을여시겠습니까?
EEAA

예, 답변을 게시 할 수 있습니다.
Frank Martin

답변:


11

나는 당신이 같은 포트에서 그들을 실행하려고했다고 생각합니다.

포트 번호를 다르게 변경하여 작동하게되었습니다.


11

내가했던 실수는 전체 MySQL 설치 폴더를 복사하는 것이 었습니다. 이 폴더를 복사 할 필요는 없습니다.

  • C : \ MyInstances \ my1.ini와 같은 위치에서 실행하려는 각 인스턴스에 대해 새 ini 파일을 작성하십시오 (위의 예).
  • 그런 다음 C : \ MyInstances \ data1에 data1에 대한 새 폴더를 만들고 여기에 mysqlinformation_schema 데이터베이스를 복사 하십시오. 이 데이터베이스는 MySQL이 설치된 데이터 폴더에서 가져옵니다. Windows 2012 (및 아마도 다른 서버 OS)에서는 일반적으로 C : \ ProgramData \ MySQL입니다.
  • 그런 다음 ini 파일에서 다음을 정의하십시오.

datadir = C : / MyInstances / data1

  1. 그런 다음 MySQL을 서비스로 설치하는 다음 명령을 실행하십시오. 서비스가 생성되면 간단히 서비스를 실행하십시오.

MySqlpath \ bin \ mysqld --install mysqld1 --defaults-file = PATH_TO_YOUR_INI_FILE

물론 각 ini 파일에서 @Anthony Fornito에서 언급 한대로 다른 포트 번호를 정의해야합니다.


11
  1. 별도의 데이터 폴더를 만들고 네트워크 서비스에 대한 모든 권한을 부여하십시오.
  2. my.ini 파일을 새 데이터 폴더로 복사하십시오.
  3. mysql-init.txt라는 데이터 디렉토리에 새 파일을 작성하고 루트 사용자의 비밀번호가 설정되도록 한 줄을 추가하십시오.

    • ALTER USER 'root'@'localhost' IDENTIFIED BY '[Enter Password]';
  4. 포트, 소켓, datadir 및 공유 메모리 기본 이름을 변경하여 my.ini 파일을 편집하십시오. 모두 다른 MySQL 인스턴스와 달라야합니다.

my.ini :

[client]
port=3333
socket=MYSQL2_INST.SOCK
shared-memory-base-name=MYSQL2_INST

[mysqld]
shared-memory-base-name=MYSQL2_INST
socket=MYSQL2_INST.SOCK
port=3333
basedir="C:/Program Files/MySQL/MySQL Server 5.7"
datadir="E:/MySQL2/Data"
  1. 명령 행에서 ~ \ MySQL Server XY \ bin \으로 이동하여 실행하십시오.

    • mysqld --install MySQL57-2 --defaults-file=E:\mysql2\data\my.ini --init-file=E:\mysql2\data\mysql-init.txt
  2. 서비스 시작

    • NET START MySQL57-2
  3. 서비스가 성공적으로 시작되었는지 확인하십시오. 그렇지 않은 경우 데이터 폴더에서 오류 로그를 찾을 수 있습니다. 그렇지 않으면 이동해야합니다.


PS C : \ MySQLInstances \ data> net start mysqld mysqld 서비스가 시작되고 있습니다. mysqld 서비스를 시작할 수 없습니다. 서비스가 오류를보고하지 않았습니다. NET HELPMSG 3534를 입력하면 더 많은 도움말을 볼 수 있습니다.
Rajat
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.