7.8 Запуск нескольких экземпляров MySQL на одном компьютере
В некоторых случаях может потребоваться запустить несколько экземпляров MySQL на одном компьютере. Например, вы можете протестировать новую версию MySQL, не затрагивая существующую производственную настройку. Или вы можете предоставить разным пользователям доступ к разным серверам mysqld, которыми они будут управлять самостоятельно. (Например, вы можете быть поставщиком интернет-услуг, который хочет предоставить независимые установки MySQL для разных клиентов.)
Можно использовать разные двоичные файлы сервера MySQL для каждого экземпляра или использовать один и тот же двоичный файл для нескольких экземпляров, или любое сочетание этих подходов. Например, вы можете запустить один сервер из MySQL 8.3 и один из MySQL 8.4, чтобы увидеть, как разные версии обрабатывают заданную рабочую нагрузку. Или вы можете запустить несколько экземпляров текущей производственной версии, каждый из которых управляет различными наборами баз данных.
Используете ли вы отдельные двоичные файлы сервера или нет, каждый запущенный экземпляр должен быть настроен с уникальными значениями для нескольких операционных параметров. Это устраняет возможность конфликта между экземплярами. Параметры могут быть заданы в командной строке, в файлах опций или путем установки переменных среды. См. Раздел 6.2.2, «Указание параметров программы». Чтобы увидеть значения, используемые данным экземпляром, подключитесь к нему и выполните оператор SHOW
VARIABLES.
Основным ресурсом, управляемым экземпляром MySQL, является каталог данных. Каждый экземпляр должен использовать отдельный каталог данных, местоположение которого указывается с помощью опции --datadir=. Методы настройки каждого экземпляра со своим каталогом данных и предупреждения о потенциальных опасностях при игнорировании этого, см. в разделе 7.8.1, «Настройка нескольких каталогов данных».dir_name
Помимо использования разных каталогов данных, для каждого экземпляра сервера должны быть установлены разные значения для нескольких других опций:
-
--portуправляет номером порта для подключений TCP/IP. В качестве альтернативы, если у хоста несколько сетевых адресов, можно установить системную переменнуюbind_address, чтобы каждый сервер прослушивал другой адрес. -
--socket={file_name|pipe_name}--socketуправляет путём к файлу Unix-соккета на Unix или именем именованной трубы на Windows. В Windows необходимо указывать различные имена труб только для тех серверов, которые настроены на разрешение подключений через именованные трубы. -
--shared-memory-base-name=nameЭта опция используется только на Windows. Она определяет имя общей памяти, используемое сервером Windows для разрешения подключения клиентов с помощью общей памяти. Необходимо указывать разные имена общей памяти только для тех серверов, которые настроены на разрешение подключений через общую память.
-
Эта опция указывает путь к файлу, в котором сервер записывает свой идентификатор процесса.
Если используются следующие опции файла журнала, их значения должны отличаться для каждого сервера:
Для более подробного обсуждения опций файла журнала см. раздел 7.4, «Журналы сервера MySQL».
Для повышения производительности можно задавать следующую опцию по-разному для каждого сервера, чтобы распределить нагрузку между несколькими физическими дисками:
Использование разных временных каталогов также облегчает определение того, какой сервер MySQL создал данный временный файл.
Если у вас установлены несколько установок MySQL в разных местах, вы можете указать базовый каталог для каждой установки с помощью опции --basedir=. Это заставит каждый экземпляр автоматически использовать отдельный каталог данных, файлы журналов и файл PID, так как по умолчанию каждый из этих параметров является относительным к базовому каталогу. В этом случае вам нужно указать только опции dir_name--socket и --port. Предположим, что вы устанавливаете разные версии MySQL, используя tar двоичные дистрибутивы файлов. Эти установки находятся в разных местах, поэтому вы можете запустить сервер для каждой установки, используя команду bin/mysqld_safe в соответствующем базовом каталоге. mysqld_safe определяет правильную опцию --basedir для передачи в mysqld, и вам нужно указать только опции --socket и --port для mysqld_safe.
Как обсуждается в последующих разделах, можно запустить дополнительные серверы, указав соответствующие параметры команды или установив переменные среды. Однако если вам нужно постоянно запускать несколько серверов, удобнее использовать файлы опций для указания для каждого сервера тех значений параметров, которые должны быть уникальными для него. Для этой цели полезна опция --defaults-file.
© 2025 Oracle
Licensed under the GPLv2 License.