Запуск двух mysql-серверов на linux

Мы уже писали о запуске двух mysql-серверов на freebsd. Продолжим эту тему относительно linux с systemd. Сразу оговорки: речь идет о mysql <= 5.6, поскольку 5.7 умеет работать с systemd без участия mysqld_safe.
Что необходимо и достаточно для запуска второго mysql-сервера?
— задать отличный от первого конфигурационный файл;
— задать другую datadir;
— определить другой socket;
— другой pid-file;
— и хорошо бы, что б логи обоих mysql писались в разные лог-файлы.
Поехали. В конкретном случае речь идет о centos 7 и Percona-Server-56.

1) Копируем /usr/lib/systemd/system/mysqld.service с именем mysqld1.service. Редактируем его в части [Service]:

[Service]
...
[Install]
WantedBy=multi-user.target
Alias=mysql1.service
...
# Start main service
ExecStart=/usr/bin/mysqld_safe --defaults-file=/etc/my1.cnf --port=3307
...

Мы изменили один из параметр (—defaults-file) и порт, остальные будем менять в /etc/my1.cnf

2) Выполняем:

systemctl daemon-reload
systemctl enable mysqld1

3) Редактируем my1.cnf:

[mysqld]
datadir=/var/lib/mysql1
socket=/var/lib/mysql1/mysql.sock
...
...
[mysqld_safe]
log-error=/var/log/mysqld1.log
pid-file=/var/run/mysqld/mysqld1.pid

4) Создаем пустую базу:

mysql_install_db --user=mysql --datadir=/var/lib/mysql1

5) Все готово, можно запускать второй экземпляр mysql-сервер:

systemctl start mysqld1

Обращаться ко второму экземпляру mysql-сервер можно, например, так:

mysql -u root -S /var/lib/mysql1/mysql.sock
Запись опубликована в рубрике Записки админа. Добавьте в закладки постоянную ссылку.

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *