Назад | Перейти на главную страницу

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

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

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

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

Сервер1

Сервер2

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

Сервер1

идентификатор сервера = 1
log-bin = "mysql-bin"
binlog-ignore-db = тест
binlog-ignore-db = схема_информации
реплицировать-игнорировать-db = тест
реплицировать-игнорировать-db = информационная_схема
relay-log = "mysql-relay-log"
автоинкремент-инкремент = 2
автоинкремент-смещение = 1

Сервер2
идентификатор сервера = 2
log-bin = "mysql-bin"
binlog-ignore-db = тест
binlog-ignore-db = схема_информации
реплицировать-игнорировать-db = тест
реплицировать-игнорировать-db = информационная_схема
relay-log = "mysql-relay-log"
автоинкремент-инкремент = 2
автоинкремент-смещение = 2

Я запускаю оба сервера, открыв командную строку и набрав следующее:
"C: \ Program Files \ MySQL \ MySQL Server 5.7 \ bin \ mysqld"
"C: \ Program Files \ MySQL \ MySQL Server 5.7 - 2 \ bin \ mysqld"

Кажется, что команда выполняется успешно, поскольку ошибок не отображается, но когда я смотрю в диспетчер задач, чтобы увидеть, запущены ли какие-либо процессы mysql, я не вижу их.

Что я делаю не так?

Моя ошибка заключалась в копировании всей установочной папки MySQL. Вам не нужно копировать эту папку.

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

  1. Создайте отдельную папку данных и предоставьте ПОЛНЫЙ КОНТРОЛЬ NETWORK SERVICE.
  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 X.Y \ 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. Убедитесь, что служба запущена успешно. Если этого не произошло, вы можете найти журнал ошибок в папке с данными, иначе все будет в порядке.

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

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

Мои шаги на Windows 10:

  1. Копировать C:\ProgramData\MySQL\MySQL Server 8.0\my.ini к C:\ProgramData\MySQL\MySQL Server 8.0\my1.ini
  2. открыто my1.ini и измените:
    • порт = 3307 (в разделе "Клиент и сервер")
    • datadir = C: / ProgramData / MySQL / MySQL Server 8.0 / Data1
    • report_port = 3307
  3. Копировать C:\ProgramData\MySQL\MySQL Server 8.0\Data к C:\ProgramData\MySQL\MySQL Server 8.0\Data1
  4. Запускать на cmd подсказка: (При необходимости с правами администратора)
    C:\Program Files\MySQL\MySQL Server 8.0\bin>mysqld --install MySQL80-1 --defaults-file="C:\ProgramData\MySQL\MySQL Server 8.0\my1.ini"

Если все прошло хорошо, вы увидите:
Service successfully installed.

  1. Win + R
    Тип services.msc, найдите название службы MySQL80-1, щелкните его правой кнопкой мыши и выберите Start.

Если все прошло хорошо, вы увидите Status изменить на Running.
Если не получилось, откройте xxx.err файл найден в C:\ProgramData\MySQL\MySQL Server 8.0\Data1 чтобы проверить почему.


Если вы не хотите служба больше:

  • Прекрати это
  • Удалите его на cmd подсказка с помощью sc delete MySQL80-1 где MySQL80-1 название вашей службы.