AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / server / Perguntas / 823555
Accepted
Frank Martin
Frank Martin
Asked: 2017-01-01 12:34:00 +0800 CST2017-01-01 12:34:00 +0800 CST 2017-01-01 12:34:00 +0800 CST

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

  • 772

Acabei de instalar o MySQL 5.7 na VM do Windows 2012. Estou tentando criar e executar várias instâncias, mas estou muito frustrado porque 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 depois copiei a pasta e fiz outra cópia dela para criar outra instância (acho que é assim que funciona?)

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

Servidor1 Servidor1

Servidor2
Servidor2

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

Servidor1

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

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

Estou executando os dois servidores abrindo o prompt de comando e digitando o seguinte:
"C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqld"
"C:\Program Files\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á sendo executado, não vejo nenhum.

O que estou fazendo errado?

windows mysql multiple-instances
  • 4 4 respostas
  • 10157 Views

4 respostas

  • Voted
  1. Best Answer
    Frank Martin
    2017-01-06T07:22:02+08:002017-01-06T07:22:02+08:00

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

    • Simplesmente crie um novo arquivo ini para cada instância que você deseja executar (exemplos dados acima) em qualquer local, por exemplo, C:\MyInstances\my1.ini.
    • Em seguida, crie uma nova pasta para, por exemplo, data1 em C:\MyInstances\data1 e copie os bancos de dados mysql e information_schema nela. 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
    • Em seguida, defina o seguinte em seu arquivo ini.

    datadir=C:/MinhasInstâncias/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

    Obviamente, em cada arquivo ini, você deve definir um número de porta diferente, conforme mencionado por @Anthony Fornito.

    • 12
  2. Anthony Fornito
    2017-01-05T07:30:17+08:002017-01-05T07:30:17+08:00

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

    Mudou os números das portas para serem diferentes foi o que fez funcionar

    • 11
  3. MasterProgrammer200
    2017-07-28T12:16:29+08:002017-07-28T12:16:29+08:00
    1. Crie uma pasta de dados separada e dê 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 da base da memória compartilhada. Todos os quais precisam ser diferentes de outras instâncias do MySQL.

    meu.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 XY\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. Caso contrário, você pode encontrar um log de erros na pasta de dados, caso contrário, você deve estar pronto.

    • 11
  4. jumping_monkey
    2020-07-19T01:11:10+08:002020-07-19T01:11:10+08:00

    Meus passos em Windows 10:

    1. Copiar C:\ProgramData\MySQL\MySQL Server 8.0\my.iniparaC:\ProgramData\MySQL\MySQL Server 8.0\my1.ini
    2. Abra my1.inie modifique:
      • porta = 3307 (na seção Cliente e Servidor)
      • datadir=C:/ProgramData/MySQL/MySQL Server 8.0/Data1
      • report_port=3307
    3. Copiar C:\ProgramData\MySQL\MySQL Server 8.0\DataparaC:\ProgramData\MySQL\MySQL Server 8.0\Data1
    4. Executar no cmdprompt: (com privilégios de administrador, se necessário)
      C:\Program Files\MySQL\MySQL Server 8.0\bin>mysqld --install MySQL80-1 --defaults-file="C:\ProgramData\MySQL\MySQL Server 8.0\my1.ini"

    Se tudo correu bem, você verá:
    Service successfully installed.

    1. Win+R
      Digite services.msc, encontre o nome do serviço MySQL80-1, clique com o botão direito nele e clique em Start.

    Se tudo correu bem, você verá a Statusmudança para Running.
    Se não deu certo, abra xxx.erro arquivo encontrado em C:\ProgramData\MySQL\MySQL Server 8.0\Data1para verificar o motivo.


    Caso não queira mais o serviço :

    • Pare com isso
    • Exclua-o no cmdprompt usando sc delete MySQL80-1where MySQL80-1is your service name.
    • 1

relate perguntas

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Você pode passar usuário/passar para autenticação básica HTTP em parâmetros de URL?

    • 5 respostas
  • Marko Smith

    Ping uma porta específica

    • 18 respostas
  • Marko Smith

    Verifique se a porta está aberta ou fechada em um servidor Linux?

    • 7 respostas
  • Marko Smith

    Como automatizar o login SSH com senha?

    • 10 respostas
  • Marko Smith

    Como posso dizer ao Git para Windows onde encontrar minha chave RSA privada?

    • 30 respostas
  • Marko Smith

    Qual é o nome de usuário/senha de superusuário padrão para postgres após uma nova instalação?

    • 5 respostas
  • Marko Smith

    Qual porta o SFTP usa?

    • 6 respostas
  • Marko Smith

    Linha de comando para listar usuários em um grupo do Windows Active Directory?

    • 9 respostas
  • Marko Smith

    O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL?

    • 3 respostas
  • Marko Smith

    Como determinar se uma variável bash está vazia?

    • 15 respostas
  • Martin Hope
    Davie Ping uma porta específica 2009-10-09 01:57:50 +0800 CST
  • Martin Hope
    kernel O scp pode copiar diretórios recursivamente? 2011-04-29 20:24:45 +0800 CST
  • Martin Hope
    Robert ssh retorna "Proprietário incorreto ou permissões em ~/.ssh/config" 2011-03-30 10:15:48 +0800 CST
  • Martin Hope
    Eonil Como automatizar o login SSH com senha? 2011-03-02 03:07:12 +0800 CST
  • Martin Hope
    gunwin Como lidar com um servidor comprometido? 2011-01-03 13:31:27 +0800 CST
  • Martin Hope
    Tom Feiner Como posso classificar a saída du -h por tamanho 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent Como determinar se uma variável bash está vazia? 2009-05-13 09:54:48 +0800 CST

Hot tag

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve