Spec-Zone.ru › MySQL 5.7

5.7 Запуск нескольких экземпляров MySQL на одной машине

  • 5.7.1 Настройка нескольких каталогов данных
  • 5.7.2 Запуск нескольких экземпляров MySQL в Windows
  • 5.7.3 Запуск нескольких экземпляров MySQL в Unix
  • 5.7.4 Использование клиентских программ в среде с несколькими серверами

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

Можно использовать разные бинарные файлы сервера MySQL для каждого экземпляра или использовать один и тот же бинарный файл для нескольких экземпляров, или любую комбинацию этих двух подходов. Например, вы можете запустить один сервер из MySQL 5.6 и один из MySQL 5.7, чтобы посмотреть, как разные версии обрабатывают заданную рабочую нагрузку. Или вы можете запустить несколько экземпляров текущей производственной версии, каждый из которых управляет разными наборами баз данных.

Используете ли вы отдельные бинарные файлы сервера или нет, каждый запущенный экземпляр должен быть настроен с уникальными значениями для нескольких операционных параметров. Это исключает возможность конфликтов между экземплярами. Параметры могут быть установлены в командной строке, в файлах параметров или путем установки переменных среды. См. Раздел 4.2.2, «Указание параметров программы». Чтобы увидеть значения, используемые данным экземпляром, подключитесь к нему и выполните оператор SHOW VARIABLES.

Основным ресурсом, управляемым экземпляром MySQL, является каталог данных. Каждый экземпляр должен использовать отдельный каталог данных, местоположение которого указывается с помощью параметра --datadir=dir_name. Методы настройки каждого экземпляра с собственным каталогом данных и предупреждения о опасностях игнорирования этого, см. в разделе 5.7.1 «Настройка нескольких каталогов данных».

Помимо использования разных каталогов данных, для каждого экземпляра сервера должны быть разные значения нескольких других параметров:

  • --port=port_num

    --port управляет номером порта для подключений TCP/IP. В качестве альтернативы, если у хоста есть несколько сетевых адресов, вы можете установить системную переменную bind_address, чтобы каждый сервер слушал по другому адресу.

  • --socket={file_name|pipe_name}

    --socket управляет путем к файлу Unix-соккета в Unix или именем именованной трубы в Windows. В Windows необходимо указывать разные имена труб только для тех серверов, которые настроены на разрешение подключений через именованные трубы.

  • --shared-memory-base-name=name

    Этот параметр используется только в Windows. Он обозначает имя общей памяти, используемое сервером Windows, чтобы разрешить клиентам подключаться с помощью общей памяти. Необходимо указывать разные имена общей памяти только для тех серверов, которые настроены на разрешение подключений с помощью общей памяти.

  • --pid-file=file_name

    Этот параметр указывает имя файла, в котором сервер записывает свой идентификатор процесса.

Если вы используете следующие параметры файла журнала, их значения должны отличаться для каждого сервера:

  • --general_log_file=file_name

  • --log-bin[=file_name]

  • --slow_query_log_file=file_name

  • --log-error[=file_name]

Для более подробного обсуждения параметров файлов журналов см. Раздел 5.4, «Журналы сервера MySQL».

Для лучшей производительности можно указать параметр по-разному для каждого сервера, чтобы распределить нагрузку между несколькими физическими дисками:

  • --tmpdir=dir_name

Использование разных временных каталогов также упрощает определение того, какой сервер MySQL создал тот или иной временный файл.

Если у вас несколько установок MySQL в разных местах, вы можете указать базовый каталог для каждой установки с помощью параметра --basedir=dir_name. Это заставит каждый экземпляр автоматически использовать другой каталог данных, файлы журналов и файл PID, потому что значение по умолчанию для каждого из этих параметров относительно базового каталога. В этом случае единственными другими параметрами, которые вам нужно указать, являются --socket и --port параметры. Предположим, что вы устанавливаете разные версии MySQL с помощью tar бинарных дистрибутивов файлов. Эти установки находятся в разных местах, поэтому вы можете запустить сервер для каждой установки с помощью команды bin/mysqld_safe в соответствующем базовом каталоге. mysqld_safe определяет соответствующий параметр --basedir для передачи в mysqld, и вам нужно указать только параметры --socket и --port для mysqld_safe.

Как обсуждается в следующих разделах, можно запустить дополнительные серверы, указав соответствующие параметры командной строки или установив переменные среды. Однако, если вам нужно запускать несколько серверов на постоянной основе, удобнее использовать файлы параметров, чтобы для каждого сервера указывать те значения параметров, которые должны быть уникальными для него. Для этой цели полезен параметр --defaults-file.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/multiple-servers.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API