Spec-Zone.ru › MySQL 8.4

7.8 Запуск нескольких экземпляров MySQL на одном компьютере

  • 7.8.1 Настройка нескольких каталогов данных
  • 7.8.2 Запуск нескольких экземпляров MySQL на Windows
  • 7.8.3 Запуск нескольких экземпляров MySQL на Unix
  • 7.8.4 Использование клиентских программ в среде с несколькими серверами

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

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

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

Основным ресурсом, управляемым экземпляром MySQL, является каталог данных. Каждый экземпляр должен использовать отдельный каталог данных, местоположение которого указывается с помощью опции --datadir=dir_name. Методы настройки каждого экземпляра со своим каталогом данных и предупреждения о потенциальных опасностях при игнорировании этого, см. в разделе 7.8.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]

Для более подробного обсуждения опций файла журнала см. раздел 7.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-8.4-en/multiple-servers.html

Spec-Zone.ru

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