Знаете ли вы какой-нибудь «способ Debian» для установки нескольких экземпляров MySQL на одном сервере? Сервер будет получать данные, реплицированные из нескольких удаленных баз данных.
Я мог бы использовать такие скрипты, как mysqlsandbox, но я предпочитаю придерживаться пакетов Debian и хотел бы иметь возможность обновить установку без особых сложностей в будущем. Другим решением является mysqlmanager - он работает с MySQL 5.1, но устарел и больше не выпускается с 5.5.
Итак, какова «лучшая практика» запуска нескольких экземпляров MySQL на одном сервере Debian?
Ответы:
Я считаю, что это так же просто, как запустить
mysqld_multi
и правильно настроить my.cnf.mysqld_multi
является частью дистрибутива MySQL, а не упакованным излишком.Существует патч , чтобы сделать
/usr/share/mysql/mysqld_multi.server
подходящую для использования в/etc/init.d
и другом патч , чтобы сделатьmysqld_multi
файлы использование в/etc/mysql/conf.d
.Вы можете инициализировать каталоги данных MySQL для новых экземпляров с помощью следующей
mysql_install_db
команды:Не забудьте сменить пароль root вновь созданного экземпляра:
источник
В Debian 8 вы можете использовать механизм Systemd: больше не нужно
mysqld_multi
.ПРИМЕЧАНИЕ: я использую версию MariaDB! Не уверен, работает ли он с «классическим» пакетом MySQL.
От
/lib/systemd/system/mariadb@.service
:Итак, создайте файл
/etc/mysql/conf.d/myserver2.cnf
и укажите в нем новые файлы pid / socket / datadir и сетевой порт:РЕДАКТИРОВАТЬ: будьте осторожны, что первый экземпляр MySQL не читает этот файл конфигурации, с
!includedir /etc/mysql/conf.d/*
в нижней части/etc/mysql/my.cnf
. Если дело обстоит так, замените на!includedir
a!include
каждого файла конфигурации ДРУГОЕ, чем myserver2.cnf:MySQL официального документа указать , что вы должны назвать ,
[mysqld]
как[mysqld@server2]
( https://dev.mysql.com/doc/refman/5.7/en/using-systemd.html#systemd-multiple-mysql-instances ) , но это не работает с MariaDB , Так что просто давай[mysqld]
.Перед запуском нового демона не забудьте создать datadir и необходимые файлы:
Также перезагрузите конфигурацию демона systemd:
И если вы хотите запустить этот демон при загрузке:
Чтобы начать это:
источник
/etc/my.cnf
, вот почему.!includedir /etc/mysql/conf.d/*
. Для большей безопасности я включил каждыйconf.d
файл вручную