моя контактная информация
Почтамезофия@protonmail.com
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
В системах Linux по умолчанию MySQL (или MariaDB, популярный ответвление MySQL) напрямую не поддерживает запуск нескольких экземпляров MySQL на одном компьютере, при этом каждый экземпляр использует другой порт и независимую систему паролей. Однако вы можете добиться этого, настроив несколько экземпляров MySQL (также известных как мультиэкземпляры). Обычно это включает в себя настройку различных портов, каталогов данных, файлов конфигурации и, возможно, прав пользователя для каждого экземпляра.
Вот основные шаги для настройки нескольких экземпляров MySQL:
Убедитесь, что у вас установлена работающая MySQL. В этом руководстве предполагается, что вы используете MySQL, но если вы используете MariaDB, шаги очень похожи.
Создайте новый каталог данных для каждого экземпляра MySQL:
sudo mkdir -p /data/mysql1 /data/mysql2 | |
sudo chown -R mysql:mysql /data/mysql1 /data/mysql2 |
здесь/data/mysql1
и/data/mysql2
— это каталоги данных двух разных экземпляров.
Файл конфигурации по умолчанию для MySQL обычно/etc/my.cnf
(или/etc/mysql/my.cnf
, в зависимости от вашего дистрибутива). Вам необходимо создать новый файл конфигурации для каждого экземпляра.
sudo cp /etc/my.cnf /etc/mysql1.cnf | |
sudo cp /etc/my.cnf /etc/mysql2.cnf |
Измените следующие разделы каждого файла конфигурации:
[mysqld]
Настройки в разделеdatadir
для вновь созданных каталогов данных (например./data/mysql1
или/data/mysql2
)。port
(Например, первый экземпляр использует 3306, второй — 3307).socket
пути, убедившись, что они уникальны.user
иlog_error
и другие параметры, обеспечивающие независимую работу экземпляра. Для новых экземпляров MySQL вам необходимо инициализировать каталог данных.Обычно это предполагает бегmysqld --initialize
илиmysql_install_db
(В зависимости от вашей версии MySQL). Обратите внимание, что это может перезаписать любые существующие данные.
sudo mysqld --initialize --user=mysql --datadir=/data/mysql1 | |
sudo mysqld --initialize --user=mysql --datadir=/data/mysql2 |
Вам необходимо написать сценарий запуска для каждого экземпляра или использоватьsystemd
юнит-файлы для управления ими. Это часто сложно и требует настройки в соответствии с вашими конкретными потребностями и системной средой.
Упрощенный подход заключается в использованииmysqld_safe
Или запустите прямо из командной строкиmysqld
, но это не подходит для производственных сред.
После инициализации каждый экземпляр имеет пароль root по умолчанию (MySQL 5.7.6 и новее). Вам необходимо установить независимые пароли и права пользователя для каждого экземпляра.
--socket
и--port
параметры).ALTER USER
оператор для установки пароля root.Убедитесь, что у вас есть соответствующие стратегии мониторинга и резервного копирования для поддержки нескольких экземпляров MySQL.