RussianLDP Рейтинг@Mail.ru
WebMoney: 
WMZ Z294115950220 
WMR R409981405661 
WME E134003968233 
Visa 
4274 3200 2453 6495 

Глава 2. Установка MySQL Router

В этой главе описывается, как получить и установить MySQL Router. Загрузки доступны с https://dev.mysql.com/downloads/router.

2.1. Установка MySQL Router в Linux

Есть двоичные дистрибутивы MySQL Router, доступные для нескольких вариантов Linux, включая Fedora, Oracle Linux, Red Hat и Ubuntu.

Опции инсталляции включают:

  • Official MySQL Yum or APT repository packages: Эти двоичные модули строятся командой MySQL Release. Для получения дополнительной информации об их установке см. краткие руководства по установке, используя Yum или APT.

  • Скачать официальные пакеты MySQL : Загрузки доступны с https://dev.mysql.com/downloads/router. Загрузите и установите с использованием вашего предпочтительного диспетчера пакетов.

    Альтернативно, MySQL Router включен в исходные тексты MySQL Server и монолитные двоичные сборки MySQL Router 8.0.13.

  • Скачайте и соберите исходные тексты : исходный код доступен с https://dev.mysql.com/downloads/router как пакеты tar.gz или RPM. Альтернативно, исходный код также есть на GitHub.

    Для получения информации о компилировании MySQL Router см. здесь.

Процедура установки на Linux зависит от вашего дистрибутива Linux.

Установка MySQL Router, используя официальный пакет DEB или RPM создает местного пользователя системы и группу, названную "mysqlrouter" на хосте, на котором работает по умолчанию MySQL Router. Для получения дополнительной информации посмотрите опцию настройки user.

Установка пакетов DEB

В Ubuntu и других системах, которые используют схему пакета Debian, можно загрузить и установить .deb пакеты или использовать диспетчер пакетов APT.

Использование APT Package Manager

  1. Установите репозитарий MySQL APT как описано в документации MySQL APT Repository:

    Загрузите пакет конфигурации APT с https://dev.mysql.com/downloads/repo/apt/.

    shell> sudo dpkg -i mysql-apt-config_0.8.8-1_all.deb
    

    Включите на экране конфигурации "MySQL Tools & Connectors".

  2. Обновите свое хранилище APT:

    shell> sudo apt-get update
    
  3. Установите MySQL Router:

    shell> sudo apt-get install mysql-router
    

Установка пакета вручную

Можно также загрузить .deb пакет и установить его из командной строки:

shell> sudo dpkg -i package.deb

package .deb это имя пакета MySQL Router, например, mysql-router-version -1ubu1604-amd64.deb, где version номер версии MySQL Router.

Установка пакетов RPM

На основанных на RPM системах можно загрузить и установить пакеты RPM или использовать Yum package manager.

Применение Yum Package Manager

  • Во-первых, установите хранилище MySQL Yum, как описано в документации MySQL Yum Repository:

    Загрузите пакет конфигурации Yum отсюда.

    shell> sudo rpm -Uvh mysql57-community-release-el7-11.noarch.rpm
    
  • Затем установите MySQL Router:

    shell> sudo yum install mysql-router
    

Ручная установка пакета RPM

shell> sudo rpm -i package.rpm

package .rpm это имя пакета MySQL Router, например, mysql-router-version -el7.x86_64.rpm, где version номер версии MySQL Router.

Деинсталляция

Процедура деинсталляции MySQL Router в Linux зависит от пакета, который вы используете.

Деинсталляция пакетов DEB

Чтобы деинсталлировать пакет Debian, используйте эту команду:

shell> sudo dpkg -r mysql-router

Эта команда не удаляет конфигурационные файлы. Чтобы также удалить их и каталог данных, используйте:

shell> sudo dpkg --purge mysql-router

Альтернативно, можно использовать apt-get remove mysql-router или apt-get purge mysql-router.

Деинсталляция пакетов RPM

Чтобы деинсталлировать пакет RPM, используйте эту команду:

shell> sudo rpm -e mysql-router

Точно так же можно использовать yum remove mysql-router.

Эта команда не удаляет конфигурационные файлы.

Что не удалено

Если не производить чистку, процесс деинсталляции не удаляет ваши конфигурационные файлы. На системах Debian это могло бы включать такие файлы, как:

/etc/init.d/mysqlrouter
/etc/mysqlrouter/mysqlrouter.conf
/etc/apparmor.d/usr.sbin.mysqlrouter

2.2. Установка MySQL Router в macOS

Загрузите архив DMG с https://dev.mysql.com/downloads/router/ и выполните его, чтобы установить MySQL Router.

Альтернативно, загрузите, распакуйте и вручную установите файл .tar.gz.

2.3. Установка MySQL Router в Windows

MySQL Router для Windows может быть установлен, используя MySQL Installer, который устанавливает и обновляет все продукты MySQL в Windows, или загружая архив ZIP.

Требования для Windows

Для версии Community MySQL Router: Нужен Visual C++ Redistributable для Visual Studio 2015 (доступно на Microsoft Download Center). Установите его прежде, чем установить MySQL Router в Windows.

Установка через MySQL Installer

Общая загрузка MySQL Installer доступна с https://dev.mysql.com/downloads/windows/installer/. MySQL Installer может установить, модернизировать и управлять большинством продуктов MySQL, включая MySQL Router. MySQL Installer также включает возможность автонастройки MySQL Router с кластером MySQL InnoDB.

Рекомендуемый подход

Управление всеми вашими продуктами MySQL, включая MySQL Router, с MySQL Installer является рекомендуемым подходом. Это работает со всеми требованиями, предпосылками, процедурами конфигурации и модернизациями.

Используя MySQL Installer, можно выбрать MySQL Router в качестве одного из продуктов, чтобы установить или модернизировать.

MySQL Router, как правило, устанавливается в C:\%PROGRAMFILES% \MySQL\MySQL Router 8.0, где %PROGRAMFILES% каталог по умолчанию для программ. Каталог %PROGRAMFILES% определяется как C:\Program Files\ на большинстве систем.

Для получения информации об установке и старте роутера как службы Windows см. раздел 5.1.

Установка архива ZIP

Загрузка прхива ZIP доступна с https://dev.mysql.com/downloads/router/.

В отличие от установки с MySQL Installer, распаковка архива MySQL Router ZIP не проверяет зависимости в вашей системе, такие как необходимый VC++ 2015 runtime. Устанавливая MySQL Router, используя архив ZIP, загрузите и установите Visual C++ Redistributable for Visual Studio 2015 перед использованием MySQL Router.

После установки VC++ 2015 runtime распакуйте архив ZIP и выполните bin/mysqlrouter.exe.

Для получения информации об установке и использовании MySQL Router как сервиса Windows см. раздел 5.1.

2.4. Установка MySQL Router из исходных текстов

MySQL Router написан, используя C++. По сути, необходимо собрать код прежде чем можно будет установить его. Компиляция типична для большинства приложений C++, как продемонстрировано ниже.

CMake обеспечивает контроль над тем, как вы формируете исходный дистрибутив MySQL Router. Как правило, вы делаете это использованием опций в командной строке CMake. Для получения информации об опциях, поддержанных CMake, выполните любую из этих команд в исходном каталоге MySQL Router:

shell> cmake . -LH
shell> ccmake .

По умолчанию инсталляционные префиксы используются. Это отличается для каждой платформы, но для большинства подобных Unix платформ это "/usr/local". Возможно изменить инсталляционный путь переменной CMake "CMAKE_INSTALL_PREFIX":

shell> mkdir build && cd build
shell> cmake .. -DINSTALL_LAYOUT=STANDALONE -DCMAKE_INSTALL_PREFIX=/opt/mysql/router8.0

Заметьте, что мы используем опцию -DINSTALL_LAYOUT=STANDALONE, чтобы использовать то же самое инсталляционное расположение, как используется для пакетов .tar.gz и .zip. Это рекомендуемое значение для сборки.

Опции CMake не описаны здесь, но они подобны опциям CMake для MySQL Server. См. MySQL Source-Configuration Options.

Загрузите и распакуйте исходные файлы, затем выполните шаги, определенные для вашей платформы.

Linux и macOS

shell> tar xzf mysql-router-8.0.14-src.tar.gz
shell> cd mysql-router-8.0.14-src

Как только это выполнено, надо сконфигурировать и собрать MySQL Router с помощью cmake. Наши примеры используют местоположение стандартной установки /usr/local.

Установка MySQL Router производит файл, названный install_manifest.txt, который перечисляет все файлы (с путями), установленные в системе. Этот файл полезен для удаления MySQL Router.

Однако, есть предпосылки для компилирования исходного кода MySQL Router.

2.4.1. Требования

Следующие компоненты и библиотеки требуются, чтобы собрать MySQL Router в Linux:

  • Операционная система с компилятором, который поддерживает C++11.

    Системы в качестве примера, которые включают эту поддержку, являются Ubuntu 14.04 и позже, Oracle Linux 7 и macOS 10.10 и выше.

    Enterprise Linux 6: компиляция работает, но требует Библиотеки Software Collection Library 1.2. Для Oracle Linux см. Docs и Downloads. Для RedHat и CentOS см. Docs и Downloads.

  • MySQL Server 5.5 и позже библиотеки клиента и заголовочные файлы. Например, на Ubuntu это пакет libmysqlclient-dev .

  • Инструменты разработки кода включая gcc, make и различные утилиты для C++ 11, включая GCC 4.8 и позже, glibc 2.17 и позже и clang 3.3 и позже.

  • SLES 12 considerations: с MySQL 8.0.13 эти двоичные модули собраны GCC 7, самая низкая поддержанная версия GCC на этой платформе теперь 5.3. Это изменение означает, что хранилище GCC Devel требуется. Например:

    shell> cd /etc/zypp/repos.d/
    shell> wget https://download.opensuse.org/repositories/devel:/gcc/SLE-12/devel:gcc.repo
    
  • CMake 2.8.9 или выше.

  • Protobuf 3.0.

Если ваша установка MySQL Server не включает заголовочные файлы и собранные библиотеки клиента, то вы, возможно, должны загрузить исходный код для MySQL Server.

2.4.2. Компилирование исходного кода

Чтобы собрать исходный код, необходимо создать папку, чтобы хранить собранные файлы, управлять cmake, чтобы создать make-файл, затем собрать код. Следующее демонстрирует шаги, необходимые на машине с Ubuntu. Другие платформы подобны.

Для некоторых платформ, таких как Oracle Enterprise Linux 6, вы, возможно, также должны установить devtoolset software collection.

Если вы получаете ошибку, что библиотеки MySQL не могут быть найдены, то проверьте перечисленные пути. Если библиотеки клиента или каталог include не существуют, вы, возможно, должны сослаться на собранную копию исходного кода MySQL Server при помощи опции -DWITH_MYSQL=<path to server code>. Более определенно компилятор должен быть в состоянии найти библиотеки клиента MySQL и включаемые файлы. Если libmysqlclient сохранен в другом месте, то -DMySQL_CLIENT_LIB=/path/to/libmysqlclient.so может также использоваться. У собранного дерева исходного кода сервера будут эти файлы.

Например, на платформах Debian и RPM были бы нужны пакеты, которые содержат библиотеки и файлы заголовков. Если бы вы установили MySQL от определенного для платформы хранилища, необходимо было бы установить пакеты mysql-community-libs и mysql-community-devel.

Если вы изменяете что-нибудь и должны повторно собрать с нуля, несомненно, удалите файл CMakeCache.txt перед выполнением cmake.

Начните с запуска cmake, чтобы создать make-файл. Следующие командаы выполняются от корня дерева исходного кода MySQL Router. Необходимо видеть подобные результаты с соответствующими путями для системы.

shell>  mkdir build
shell>  cd build
shell>  cmake ..-DWITH_MYSQL=<path to binaries and libraries>
-- The C compiler identification is GNU 4.9.2
-- The CXX compiler identification is GNU 4.9.2
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Loading internal repository
-- Installation layout set to DEFAULT
-- Adding MySQL Harness from /home/cbell/source/git/mysql-router-2.0.2/mysql_harness
-- Harness will install plugins in lib/mysqlrouter
-- MySQL Harness CPU Descriptor is x86_64
-- MySQL Harness OS Descriptor is linux
-- MySQL Harness Compiler Descriptor is gnu-3
-- MySQL Harness Runtime Descriptor is *
-- Found Doxygen: /usr/bin/doxygen (found version "1.8.9.1")
-- Performing Test COMPILER_SUPPORTS_CXX11
-- Performing Test COMPILER_SUPPORTS_CXX11 - Success
-- Performing Test COMPILER_SUPPORTS_CXX0X
-- Performing Test COMPILER_SUPPORTS_CXX0X - Success
-- Looking for include file pthread.h
-- Looking for include file pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Performing Test support_11
-- Performing Test support_11 - Success
-- Performing Test support_0x
-- Performing Test support_0x - Success
-- Found MySQL Libraries 5.6.27; using <path to server code>/lib/libmysqlclient.so
-- Loading module 'router'
-- Loading module 'routing'
-- Configuring done
-- Generating done
-- Build files have been written to: <path to router code>/build

Затем соберите код. Для этого нам нужна только команда make как показано. Снова необходимо видеть подобные результаты в системе.

shell>  make
Scanning dependencies of target harness-archive
[2%] Building CXX object harness/harness/CMakeFiles/harness-archive.dir/src/loader.cc.o
[5%] Building CXX object harness/harness/CMakeFiles/harness-archive.dir/src/utilities.cc.o
[8%] Building CXX object harness/harness/CMakeFiles/harness-archive.dir/src/config_parser.cc.o
[ 11%] Building CXX object harness/harness/CMakeFiles/harness-archive.dir/src/designator.cc.o
[ 14%] Building CXX object harness/harness/CMakeFiles/harness-archive.dir/src/filesystem-posix.cc.o
Linking CXX static library libmysqlharness.a
[ 14%] Built target harness-archive
Scanning dependencies of target harness-library
[ 17%] Building CXX object harness/harness/CMakeFiles/harness-library.dir/src/loader.cc.o
[ 20%] Building CXX object harness/harness/CMakeFiles/harness-library.dir/src/utilities.cc.o
[ 22%] Building CXX object harness/harness/CMakeFiles/harness-library.dir/src/config_parser.cc.o
[ 25%] Building CXX object harness/harness/CMakeFiles/harness-library.dir/src/designator.cc.o
[ 28%] Building CXX object harness/harness/CMakeFiles/harness-library.dir/src/filesystem-posix.cc.o
Linking CXX shared library libmysqlharness.so
[ 28%] Built target harness-library
Scanning dependencies of target logger
[ 31%] Building CXX object harness/plugins/logger/CMakeFiles/logger.dir/logger.cc.o
Linking CXX shared library ../../../stage/lib/mysqlrouter/logger.so
[ 31%] Built target logger
Scanning dependencies of target keepalive
[ 34%] Building CXX object harness/plugins/keepalive/CMakeFiles/keepalive.dir/src/keepalive.cc.o
Linking CXX shared library ../../../stage/lib/mysqlrouter/keepalive.so
[ 34%] Built target keepalive
Scanning dependencies of target router_lib
[ 37%] Building CXX object src/router/src/CMakeFiles/router_lib.dir/router_app.cc.o
[ 40%] Building CXX object src/router/src/CMakeFiles/router_lib.dir/arg_handler.cc.o
[ 42%] Building CXX object src/router/src/CMakeFiles/router_lib.dir/utils.cc.o
[ 45%] Building CXX object src/router/src/CMakeFiles/router_lib.dir/datatypes.cc.o
[ 48%] Building CXX object src/router/src/CMakeFiles/router_lib.dir/plugin_config.cc.o
Linking CXX shared library ../../../stage/lib/libmysqlrouter.so
[ 48%] Built target router_lib
Scanning dependencies of target mysqlrouter
[ 51%] Building CXX object src/router/src/CMakeFiles/mysqlrouter.dir/main.cc.o
Linking CXX executable ../../../stage/bin/mysqlrouter
[ 51%] Built target mysqlrouter
Scanning dependencies of target routing
[ 77%] Building CXX object src/routing/CMakeFiles/routing.dir/src/routing_plugin.cc.o
[ 80%] Building CXX object src/routing/CMakeFiles/routing.dir/src/plugin_config.cc.o
[ 82%] Building CXX object src/routing/CMakeFiles/routing.dir/src/mysql_routing.cc.o
[ 85%] Building CXX object src/routing/CMakeFiles/routing.dir/src/utils.cc.o
[ 88%] Building CXX object src/routing/CMakeFiles/routing.dir/src/destination.cc.o
[ 94%] Building CXX object src/routing/CMakeFiles/routing.dir/src/dest_first_available.cc.o
[ 97%] Building CXX object src/routing/CMakeFiles/routing.dir/src/uri.cc.o
[100%] Building CXX object src/routing/CMakeFiles/routing.dir/src/routing.cc.o
Linking CXX shared library ../../stage/lib/mysqlrouter/routing.so
[100%] Built target routing

2.4.3. Установка из исходного кода

Как только исходный код собран, можно установить MySQL Router на системе следующей командой. Обратите внимание на то, что вам, возможно, понадобятся большие привилегии (например, sudo), чтобы установить.

shell>  sudo make install
[ 14%] Built target harness-archive
[ 28%] Built target harness-library
[ 31%] Built target logger
[ 34%] Built target keepalive
[ 48%] Built target router_lib
[ 51%] Built target mysqlrouter
[100%] Built target routing
Install the project...
-- Install configuration: ""
-- Up-to-date: /usr/local/include/mysql/mysqlrouter/loader.h
-- Up-to-date: /usr/local/include/mysql/mysqlrouter/filesystem.h
-- Up-to-date: /usr/local/include/mysql/mysqlrouter/plugin.h
-- Up-to-date: /usr/local/include/mysql/mysqlrouter/config_parser.h
-- Installing: /usr/local/lib/libmysqlharness.a
-- Installing: /usr/local/lib/libmysqlharness.so.0
-- Up-to-date: /usr/local/lib/libmysqlharness.so
-- Set runtime path of "/usr/local/lib/libmysqlharness.so.0" to "$ORIGIN/../lib"
-- Installing: /usr/local/lib/mysqlrouter/keepalive.so
-- Set runtime path of "/usr/local/lib/mysqlrouter/keepalive.so" to "$ORIGIN"
-- Installing: /usr/local/lib/mysqlrouter/logger.so
-- Set runtime path of "/usr/local/lib/mysqlrouter/logger.so" to "$ORIGIN"
-- Up-to-date: /usr/local/include/mysql/mysqlrouter/logger.h
-- Up-to-date: /usr/local/share/doc/mysqlrouter/README.txt
-- Up-to-date: /usr/local/share/doc/mysqlrouter/License.txt
-- Up-to-date: /usr/local/include/mysql/mysqlrouter/plugin_config.h
-- Up-to-date: /usr/local/include/mysql/mysqlrouter/utils.h
-- Up-to-date: /usr/local/include/mysql/mysqlrouter/datatypes.h
-- Installing: //var
-- Installing: //var/local
-- Installing: //var/local/mysqlrouter
-- Installing: //var/local/mysqlrouter/log
-- Installing: //var
-- Installing: //var/local
-- Installing: //var/local/mysqlrouter
-- Installing: //var/local/mysqlrouter/run
-- Installing: /usr/local/etc
-- Installing: /usr/local/etc/mysqlrouter
-- Installing: /usr/local/bin/mysqlrouter
-- Set runtime path of "/usr/local/bin/mysqlrouter" to "$ORIGIN/../lib"
-- Installing: /usr/local/lib/libmysqlrouter.so.1
-- Up-to-date: /usr/local/lib/libmysqlrouter.so
-- Set runtime path of "/usr/local/lib/libmysqlrouter.so.1" to "$ORIGIN/../lib"
-- Installing: /usr/local/lib/mysqlrouter/routing.so
-- Set runtime path of "/usr/local/lib/mysqlrouter/routing.so" to "$ORIGIN"
-- Up-to-date: /usr/local/include/mysql/mysqlrouter/routing.h

2.4.4. Тестирование установки

Можно гарантировать установку следующей командой. Необходимо видеть подобный вывод в системе. Пример установки роутера для простого направления доступен в разделе 3.2.

Наш пример предполагает, что mysqlrouter находится в PATH системы. В этом случае PATH включает /usr/local/bin.

shell> mysqlrouter --help

MySQL Router v8.0.14 on Linux (64-bit) (GPL community edition)
Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of
their respective owners.

Start MySQL Router.

Configuration read from the following files in the given order (enclosed
in parentheses means not available for reading):
(/etc/mysqlrouter/mysqlrouter.conf)
/home/philip/.mysqlrouter.conf
...

Используйте команду mysqlrouter --version, чтобы проверить версию.

Поиск

 

Найди своих коллег!

Вы можете направить письмо администратору этой странички, Алексею Паутову. mailto:alexey.v.pautov@mail.ru