Как установить и запустить несколько экземпляров MySQL в Windows 2012

12

Я только что установил MySQL 5.7 на Windows 2012 VM. Я пытаюсь создать и запустить несколько экземпляров, но очень расстроен, что такая простая вещь не работает.

Я установил MySQL в C: \ Program Files \ MySQL \ MySQL Server 5.7, который является местоположением по умолчанию, а затем скопировал папку и сделал еще одну ее копию для создания другого экземпляра (полагаю, так оно и есть?)

Оба экземпляра MySQL показаны на рисунке ниже.

Сервер1 Сервер1

Сервер2
Сервер2

Настройки INI для обоих серверов приведены ниже:

Сервер1

идентификатор сервера = 1
log-bin = "mysql-bin"
binlog-ignore-db = тест
binlog-ignore-db = information_schema
replicate-ignore-db = тест
replicate-ignore-db = information_schema
relay-log = "mysql-relay -log "
auto-increment-increment = 2
auto-increment-offset = 1

Server2
идентификатор сервера = 2
log-bin = "mysql-bin"
binlog-ignore-db = тест
binlog-ignore-db = information_schema
replicate-ignore-db = тест
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
Вопрос решен.
Фрэнк Мартин
Хотите, чтобы я открыл вопрос, чтобы вы могли опубликовать ответ?
EEAA
Да, поэтому я могу опубликовать ответ.
Фрэнк Мартин

Ответы:

11

Я полагаю, вы пытались запустить их на одном и том же порту.

Изменили номера портов, чтобы они стали другими

Энтони Форнито
источник
11

Ошибка, которую я делал, состояла в том, чтобы скопировать всю папку установки MySQL. Вам не нужно копировать эту папку.

  • Просто создайте новый INI-файл для каждого экземпляра, который вы хотите запустить (примеры приведены выше) в любом месте, например, C: \ MyInstances \ my1.ini.
  • Затем создайте новую папку, например, data1 в C: \ MyInstances \ data1, и скопируйте в нее базы данных mysql и information_schema . Вы получите эти базы данных из папки данных, где установлен MySQL. В Windows 2012 (и, возможно, в других серверных ОС) это обычно C: \ ProgramData \ MySQL
  • Затем определите следующее в вашем INI-файле.

каталогу_данный = 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 и добавьте одну строку, чтобы убедиться, что установлен пароль пользователя root.

    • ALTER USER 'root'@'localhost' IDENTIFIED BY '[Enter Password]';
  4. Отредактируйте файл 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. Убедитесь, что служба успешно запущена. Если этого не произошло, вы можете найти журнал ошибок в папке с данными, иначе вам будет хорошо.

MasterProgrammer200
источник
последовал за ним, но не смог запустить получение новой службы, PS C: \ MySQLInstances \ data> net start mysqld Служба mysqld запускается. Служба mysqld не может быть запущена. Служба не сообщила об ошибке. Дополнительную помощь можно получить, набрав NET HELPMSG 3534.
Rajat