Cómo instalar e iniciar varias instancias de MySQL en Windows 2012

12

Acabo de instalar MySQL 5.7 en Windows 2012 VM. Estoy tratando de crear y ejecutar varias instancias, pero estoy muy frustrado de que algo tan simple no funcione.

Instalé MySQL en C: \ Archivos de programa \ MySQL \ MySQL Server 5.7, que es la ubicación predeterminada y luego copié la carpeta e hice otra copia para crear otra instancia (¿supongo que así es como funciona?)

Ambas instancias de MySQL se muestran en la imagen a continuación.

Servidor 1 Servidor 1

Servidor2
Servidor2

La configuración INI para ambos servidores se detalla a continuación:

Servidor 1

server-id = 1
log-bin = "mysql-bin"
binlog-ignore-db = prueba
binlog-ignore-db = information_schema
replicate-ignore-db = prueba
replicate-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 = prueba
binlog-ignore-db = information_schema
replicate-ignore-db = prueba
replicate-ignore-db = information_schema
relay-log = "mysql- relé-registro "
auto-increment-increment = 2
auto-increment-offset = 2

Estoy ejecutando ambos servidores abriendo el símbolo del sistema y escribiendo lo siguiente:
"C: \ Archivos de programa \ MySQL \ MySQL Server 5.7 \ bin \ mysqld"
"C: \ Archivos de programa \ MySQL \ MySQL Server 5.7 - 2 \ bin \ mysqld"

El comando parece ejecutarse con éxito ya que no se muestra ningún error, pero cuando miro el administrador de tareas para ver si algún proceso mysql se está ejecutando, no veo ninguno.

¿Qué estoy haciendo mal?

Frank Martin
fuente
Edite su pregunta para incluir registros de errores, etc.
EEAA
El problema está resuelto.
Frank Martin
¿Desea que abra la pregunta para que pueda publicar una respuesta?
EEAA
Sí, así puedo publicar la respuesta.
Frank Martin

Respuestas:

11

Creo que estabas intentando ejecutarlos en el mismo puerto.

Cambiar los números de los puertos para que sean diferentes fue lo que lo hizo funcionar

Anthony Fornito
fuente
11

El error que estaba cometiendo fue copiar toda la carpeta de instalación de MySQL. No necesita copiar esta carpeta.

  • Simplemente cree un nuevo archivo ini para cada instancia que desee ejecutar (ejemplos dados anteriormente) en cualquier ubicación, por ejemplo, C: \ MyInstances \ my1.ini.
  • Luego cree una nueva carpeta para, por ejemplo, data1 en C: \ MyInstances \ data1 y copie las bases de datos mysql e information_schema en ella. Obtendrá estas bases de datos de la carpeta de datos donde está instalado MySQL. En Windows 2012 (y probablemente en otros sistemas operativos de servidor), generalmente es C: \ ProgramData \ MySQL
  • Luego defina lo siguiente en su archivo ini.

datadir = C: / MyInstances / data1

  1. Luego ejecute el siguiente comando que instalará MySQL como servicio. Después de crear los servicios, simplemente ejecute el servicio.

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

Por supuesto, en cada archivo ini, debe definir un número de puerto diferente como lo menciona @Anthony Fornito.

Frank Martin
fuente
11
  1. Cree una carpeta de datos separada y otorgue CONTROL COMPLETO al SERVICIO DE RED.
  2. Copie el archivo my.ini a la nueva carpeta de datos.
  3. Cree un nuevo archivo en el directorio de datos llamado mysql-init.txt y agregue una sola línea para asegurarse de que la contraseña del usuario raíz esté establecida.

    • ALTER USER 'root'@'localhost' IDENTIFIED BY '[Enter Password]';
  4. Edite el archivo my.ini cambiando el puerto, el socket, el datadir y el nombre base de la memoria compartida. Todo lo cual debe ser diferente de otras instancias de 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. Desde la línea de comandos, vaya a ~ \ MySQL Server XY \ bin \ y ejecute

    • mysqld --install MySQL57-2 --defaults-file=E:\mysql2\data\my.ini --init-file=E:\mysql2\data\mysql-init.txt
  2. Inicia el servicio

    • NET START MySQL57-2
  3. Verifique para asegurarse de que el servicio se inició correctamente. Si no fue así, puede encontrar un registro de errores en la carpeta de datos, de lo contrario, debería estar listo.

MasterProgrammer200
fuente
lo siguió, pero no pudo iniciar el nuevo servicio, PS C: \ MySQLInstances \ data> net start mysqld El servicio mysqld se está iniciando. El servicio mysqld no se pudo iniciar. El servicio no informó de un error. Hay más ayuda disponible escribiendo NET HELPMSG 3534.
Rajat