Spec-Zone .ru
спецификации, руководства, описания, API
|
Один путь состоит в том, чтобы работать, многократные экземпляры MySQL на Unix должен скомпилировать различные серверы с различным значением по умолчанию порты TCP/IP и файлы сокета Unix так, чтобы каждый слушал на различных сетевых интерфейсах. Компиляция в различных основных каталогах для каждой установки также приводит автоматически к отдельному, скомпилированному - в каталоге данных, файле журнала, и расположении файла PID для каждого сервера.
Предположите, что существующие 5.6 серверов конфигурируются для значения по умолчанию TCP/IP номер порта (3306)
и файл сокета Unix (/tmp/mysql.sock
). Чтобы сконфигурировать новые 5.7.2 серверов,
чтобы иметь различные операционные параметры, используйте команду CMake что-то вроде этого:
shell>cmake . -DMYSQL_TCP_PORT=
port_number
\-DMYSQL_UNIX_ADDR=
file_name
\-DCMAKE_INSTALL_PREFIX=/usr/local/mysql-5.7.2
Здесь, port_number
и file_name
должно отличаться от значения по умолчанию номер порта
TCP/IP и имя пути к файлу сокета Unix, и CMAKE_INSTALL_PREFIX
значение должно определить каталог установки,
отличающийся от того, под которым располагается существующая установка MySQL.
Если у Вас есть сервер MySQL, слушающий на данном номере порта, можно использовать следующую команду, чтобы узнать, какие операционные параметры это использует для нескольких важных конфигурируемых переменных, включая основной каталог и имя файла сокета Unix:
shell> mysqladmin --host=host_name
--port=port_number
variables
С информацией, выведенной на экран той командой, можно сказать что значения опции не использовать, конфигурируя дополнительный сервер.
Если Вы определяете localhost
как имя хоста, mysqladmin значения по умолчанию к использованию Unix снабжают
сокетом соединение файла, а не TCP/IP. Чтобы явно определить протокол соединения, используйте --protocol={TCP|SOCKET|PIPE|MEMORY}
опция.
Вы не должны скомпилировать новый сервер MySQL только, чтобы запустить с различного файла сокета Unix и номера порта TCP/IP. Также возможно использовать тот же самый двоичный файл сервера и запустить каждый вызов этого с различными значениями параметра во времени выполнения. Один способ сделать так при использовании параметров командной строки:
shell> mysqld_safe --socket=file_name
--port=port_number
Чтобы запустить второй сервер, обеспечьте отличающийся --socket
и --port
значения опции, и передача a --datadir=
опция к mysqld_safe так, чтобы сервер использовал различный каталог
данных. path
Альтернативно, поместите опции для каждого сервера в различном файле опции, затем запустите каждый сервер,
используя a --defaults-file
опция, которая определяет путь к соответствующему файлу опции. Например, если файлы опции для двух экземпляров
сервера называют /usr/local/mysql/my.cnf
и /usr/local/mysql/my.cnf2
,
запустите серверы как это: команда:
shell>mysqld_safe --defaults-file=/usr/local/mysql/my.cnf
shell>mysqld_safe --defaults-file=/usr/local/mysql/my.cnf2
Другой способ достигнуть подобного эффекта состоит в том, чтобы использовать переменные окружения, чтобы установить имя файла сокета Unix и номер порта TCP/IP:
shell>MYSQL_UNIX_PORT=/tmp/mysqld-new.sock
shell>MYSQL_TCP_PORT=3307
shell>export MYSQL_UNIX_PORT MYSQL_TCP_PORT
shell>mysql_install_db --user=mysql
shell>mysqld_safe --datadir=/path/to/datadir &
Это - быстрый способ запустить второй сервер, чтобы использовать для того, чтобы протестировать. Хорошая вещь об этом методе состоит в том, что настройки переменной окружения применяются к любым клиентским программам, которые Вы вызываете от той же самой оболочки. Таким образом соединения для тех клиентов автоматически направляются к второму серверу.
Раздел 2.12, "Переменные окружения", включает список других переменных окружения, которые можно использовать, чтобы влиять на программы MySQL.
На Unix mysqld_multi сценарий обеспечивает другой способ запустить многократные серверы. См. Раздел 4.3.4, "mysqld_multi — Серверы MySQL Manage Multiple" .