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

Вопрос или проблема

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

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

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

Server1
Server1

Server2
Server2

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

Server1

server-id=1
log-bin=”mysql-bin”
binlog-ignore-db=test
binlog-ignore-db=information_schema
replicate-ignore-db=test
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=test
binlog-ignore-db=information_schema
replicate-ignore-db=test
replicate-ignore-db=information_schema
relay-log=”mysql-relay-log”
auto-increment-increment=2
auto-increment-offset=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 '[Введите пароль]';
  4. Отредактируйте my.ini, изменив порт, сокет, datadir и название базового имени общей памяти. Все из них должны отличаться от других экземпляров 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 и измените:
    • port=3307 (в разделе Client и Server)
    • 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"

Если все прошло хорошо, вы увидите:
Служба успешно установлена.

  1. Win+R
    Напишите services.msc, найдите имя службы MySQL80-1, щелкните по нему правой кнопкой мыши и выберите Запустить.

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

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

  • Остановите её
  • Удалите ее в cmd с помощью sc delete MySQL80-1, где MySQL80-1 — это имя вашей службы.

У меня все прошло немного иначе. Я использую mysql 8.0. Сначала я скопировал содержимое my.ini в my2.ini. В файле my2.ini я внес следующие изменения:
под [client]:
port=3307

под [mysqld]:
port=3307
datadir=C:/ProgramData/MySQL/MySQL Server 8.0\Data2 (Data — это значение по умолчанию для первого экземпляра)

Затем откройте командную строку от имени администратора по адресу “C:\Program Files\MySQL\MySQL Server 8.0\bin” и выполните следующие команды:

mysqld –initialize-insecure –console –datadir=”C:\ProgramData\MySQL\MySQL Server 8.0\Data2″
(чтобы заполнить папку стандартными таблицами и файлами mysql).

mysqld –install MySQL3307 –defaults-file=”C:\ProgramData\MySQL\MySQL Server 8.0\my2.ini”
(чтобы установить mysql-сервер как службу windows).

Перейдите в службы Windows, запустите службу “MySQL3307”, и все будет готово.

Ответ или решение

Чтобы установить и запустить несколько экземпляров MySQL на Windows Server 2012, выполните следующие шаги:

Шаг 1: Подготовка к установке

  1. Создайте отдельные папки для данных:
    Вам нужно создать отдельные директории для данных каждого экземпляра. Например, создайте папки C:\MyInstances\data1 и C:\MyInstances\data2.

  2. Копирование данных:
    Вам потребуется иметь базовые данные для ваших экземпляров. Папка с данными, как правило, находится по адресу C:\ProgramData\MySQL\MySQL Server 5.7\Data. Скопируйте необходимые папки mysql и information_schema из этого каталога в созданные непосредственно папки для экземпляров.

Шаг 2: Настройка конфигурации

  1. Создайте отдельные файлы конфигурации:
    Создайте новый файл конфигурации my1.ini для первого экземпляра и my2.ini для второго экземпляра. Эти файлы можно разместить в любой удобной директории, например в C:\MyInstances.

    Пример my1.ini:

    [client]
    port=3306
    
    [mysqld]
    port=3306
    datadir=C:/MyInstances/data1

    Пример my2.ini:

    [client]
    port=3307
    
    [mysqld]
    port=3307
    datadir=C:/MyInstances/data2

Обратите внимание, что для каждого экземпляра порт (здесь 3306 и 3307) должен быть уникальным.

Шаг 3: Установка экземпляров как службы Windows

  1. Инициализация данных:
    Откройте командную строку с правами администратора и выполните следующие команды для инициализации второго экземпляра:

    C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqld --initialize-insecure --datadir="C:\MyInstances\data1"
    C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqld --initialize-insecure --datadir="C:\MyInstances\data2"

Каждая команда создаст базу данных и необходимые таблицы в указанных каталога данных.

  1. Установка экземпляра как службы:
    После инициализации, выполните следующее для установки каждого экземпляра как службы:

    C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqld --install MySQL1 --defaults-file="C:\MyInstances\my1.ini"
    C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqld --install MySQL2 --defaults-file="C:\MyInstances\my2.ini"

Если установка прошла успешно, вы увидите сообщение о том, что служба была успешно установлена.

Шаг 4: Запуск служб

  1. Запуск служб:
    Перейдите в меню "Службы" (services.msc) и найдите службы MySQL1 и MySQL2. Щелкните правой кнопкой мыши на каждой службе и выберите "Запустить".

Шаг 5: Проверка работы

  1. Проверка статуса:
    Убедитесь, что службы запущены. Если они не запустились, проверьте журналы ошибок, которые располагаются в каталогах данных экземпляров, чтобы выявить причину проблем.

Заключение

В результате выполнения этих шагов вы сможете успешно установить и запустить несколько экземпляров MySQL на Windows Server 2012. Учтите, что ключевыми моментами являются уникальность портов и правильное указание директорий данных в конфигурационных файлах.

Оцените материал
Добавить комментарий

Капча загружается...