Обмен технологиями

Как открыть несколько баз данных MySQL в Linux и индивидуально установить пароли и порты

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

В системах Linux по умолчанию MySQL (или MariaDB, популярный ответвление MySQL) напрямую не поддерживает запуск нескольких экземпляров MySQL на одном компьютере, при этом каждый экземпляр использует другой порт и независимую систему паролей. Однако вы можете добиться этого, настроив несколько экземпляров MySQL (также известных как мультиэкземпляры). Обычно это включает в себя настройку различных портов, каталогов данных, файлов конфигурации и, возможно, прав пользователя для каждого экземпляра.

Вот основные шаги для настройки нескольких экземпляров MySQL:

1. Подготовка

Убедитесь, что у вас установлена ​​работающая MySQL. В этом руководстве предполагается, что вы используете MySQL, но если вы используете MariaDB, шаги очень похожи.

2. Создайте новый каталог данных.

Создайте новый каталог данных для каждого экземпляра MySQL:

sudo mkdir -p /data/mysql1 /data/mysql2
sudo chown -R mysql:mysql /data/mysql1 /data/mysql2

здесь/data/mysql1и/data/mysql2— это каталоги данных двух разных экземпляров.

3. Скопируйте и измените файл конфигурации.

Файл конфигурации по умолчанию для 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и другие параметры, обеспечивающие независимую работу экземпляра.

4. Инициализируйте каталог данных (если он еще не инициализирован).

Для новых экземпляров MySQL вам необходимо инициализировать каталог данных.Обычно это предполагает бегmysqld --initializeилиmysql_install_db (В зависимости от вашей версии MySQL). Обратите внимание, что это может перезаписать любые существующие данные.

sudo mysqld --initialize --user=mysql --datadir=/data/mysql1
sudo mysqld --initialize --user=mysql --datadir=/data/mysql2

5. Запустите экземпляр MySQL.

Вам необходимо написать сценарий запуска для каждого экземпляра или использоватьsystemd юнит-файлы для управления ими. Это часто сложно и требует настройки в соответствии с вашими конкретными потребностями и системной средой.

Упрощенный подход заключается в использованииmysqld_safeИли запустите прямо из командной строкиmysqld, но это не подходит для производственных сред.

6. Установите пароли и разрешения

После инициализации каждый экземпляр имеет пароль root по умолчанию (MySQL 5.7.6 и новее). Вам необходимо установить независимые пароли и права пользователя для каждого экземпляра.

  • Войдите в каждый экземпляр (используя--socketи--portпараметры).
  • использоватьALTER USERоператор для установки пароля root.
  • Создайте нового пользователя и авторизуйте его.

7. Техническое обслуживание и мониторинг

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

Уведомление

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