Como instalar e iniciar várias instâncias do MySQL no Windows 2012

11

Acabei de instalar o MySQL 5.7 no Windows 2012 VM. Eu estou tentando criar e executar várias instâncias, mas muito frustrado que uma coisa tão simples não está funcionando.

Eu instalei o MySQL em C: \ Arquivos de Programas \ MySQL \ MySQL Server 5.7 que é o local padrão e então copiei a pasta e fiz outra cópia dela para criar outra instância (suponho que isso seja como funciona?)

Ambas as instâncias do MySQL são mostradas na imagem abaixo.

Server1

Server2

As configurações INI para os dois servidores são fornecidas abaixo:

Server1

server-id = 1
log-bin="mysql-bin"
binlog-ignore-db = teste
binlog-ignore-db = information_schema
replicate-ignore-db = test
replicate-ignore-db = information_schema
relay-log="mysql-relay-log"
auto-incremento-incremento = 2
auto-increment-offset = 1

Server2
server-id = 2
log-bin="mysql-bin"
binlog-ignore-db = teste
binlog-ignore-db = information_schema
replicate-ignore-db = test
replicate-ignore-db = information_schema
relay-log="mysql-relay-log"
auto-incremento-incremento = 2
auto-increment-offset = 2

Estou executando os dois servidores abrindo o prompt de comando e digitando o seguinte: "C: \ Arquivos de Programas \ MySQL \ MySQL Server 5.7 \ bin \ mysqld"
"C: \ Arquivos de Programas \ MySQL \ MySQL Server 5.7 - 2 \ bin \ mysqld"

O comando parece ser executado com sucesso, pois nenhum erro é mostrado, mas quando olho para o gerenciador de tarefas para ver se algum processo mysql está rodando, não vejo nenhum.

O que estou fazendo de errado?

    
por Frank Martin 31.12.2016 / 21:34

3 respostas

11

O erro que eu estava cometendo foi copiar toda a pasta de instalação do MySQL. Você não precisa copiar esta pasta.

  • Basta criar um novo arquivo ini para cada instância que você deseja executar (exemplos fornecidos acima) em qualquer local, por exemplo, C: \ MyInstances \ my1.ini.
  • Em seguida, crie uma nova pasta para, por exemplo, data1 nos bancos de dados C: \ MyInstances \ data1 e copy mysql e information_schema . Você obterá esses bancos de dados da pasta de dados onde o MySQL está instalado. No Windows 2012 (e provavelmente em outro sistema operacional de servidor), normalmente é C: \ ProgramData \ MySQL
  • Defina o seguinte no seu arquivo ini.

datadir=C:/MyInstances/data1

  1. Em seguida, execute o seguinte comando que instalará o MySQL como serviço. Após a criação dos serviços, basta executar o serviço.

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

É claro que em cada arquivo ini, você precisa definir um número de porta diferente, como mencionado por @Anthony Fornito.

    
por 05.01.2017 / 16:22
11

Acredito que você estava tentando executá-los na mesma porta.

Alterado os números das portas para serem diferentes foi o que fez com que funcionasse

    
por 04.01.2017 / 16:30
10
  1. Crie uma pasta de dados separada e forneça o CONTROLE TOTAL ao SERVIÇO DE REDE.
  2. Copie o arquivo my.ini para a nova pasta de dados.
  3. Crie um novo arquivo no diretório de dados chamado mysql-init.txt e adicione uma única linha para garantir que a senha do usuário root esteja definida.

    • ALTER USER 'root'@'localhost' IDENTIFIED BY '[Enter Password]';
  4. Edite o arquivo my.ini alterando a porta, o soquete, o datadir e o nome base da memória compartilhada. Tudo o que precisa ser diferente de outras instâncias do 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. Na linha de comando, navegue até ~ \ MySQL Server X.Y \ bin \ e execute

    • mysqld --install MySQL57-2 --defaults-file=E:\mysql2\data\my.ini --init-file=E:\mysql2\data\mysql-init.txt
  2. Iniciar o serviço

    • NET START MySQL57-2
  3. Verifique se o serviço foi iniciado com sucesso. Se não encontrou um log de erro na pasta de dados, você deve estar pronto.

por 27.07.2017 / 22:16