Я только что установил 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. Вам не нужно копировать эту папку.
datadir = C: / MyInstances / data1
MySqlpath \ bin \ mysqld --install mysqld1 --defaults-file = PATH_TO_YOUR_INI_FILE
Конечно, в каждом ini-файле вы должны определить другой номер порта, как указано @Anthony Fornito.
Создайте в каталоге данных новый файл с именем mysql-init.txt и добавьте одну строку, чтобы гарантировать, что установлен пароль пользователя root.
ALTER USER 'root'@'localhost' IDENTIFIED BY '[Enter Password]';
Отредактируйте файл 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"
Из командной строки перейдите в ~ \ MySQL Server X.Y \ bin \ и запустите
mysqld --install MySQL57-2 --defaults-file=E:\mysql2\data\my.ini --init-file=E:\mysql2\data\mysql-init.txt
Запустить сервис
NET START MySQL57-2
Убедитесь, что служба запущена успешно. Если этого не произошло, вы можете найти журнал ошибок в папке с данными, иначе все будет в порядке.
Я полагаю, вы пытались запустить их на одном порту.
Изменены номера портов, чтобы они были разными, вот что заставило его работать
Мои шаги на Windows 10
:
C:\ProgramData\MySQL\MySQL Server 8.0\my.ini
к C:\ProgramData\MySQL\MySQL Server 8.0\my1.ini
my1.ini
и измените: C:\ProgramData\MySQL\MySQL Server 8.0\Data
к C:\ProgramData\MySQL\MySQL Server 8.0\Data1
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.
services.msc
, найдите название службы MySQL80-1
, щелкните его правой кнопкой мыши и выберите Start
.Если все прошло хорошо, вы увидите Status
изменить на Running
.
Если не получилось, откройте xxx.err
файл найден в C:\ProgramData\MySQL\MySQL Server 8.0\Data1
чтобы проверить почему.
Если вы не хотите служба больше:
cmd
подсказка с помощью sc delete MySQL80-1
где MySQL80-1
название вашей службы.