Глава 4. Установка Connector/C++ из исходных текстов

В этой главе описываются, как установить Connector/C++, используя исходные тексты или копию исходного хранилища Git.

4.1. Инсталляционные системные предпосылки

Чтобы установить Connector/C++ из исходных текстов, следующие системные требования должны быть удовлетворены:

Инструменты для сборки

У вас должен быть кросс-платформенный инструмент CMake (3.0 или выше).

У вас должен быть компилятор C++, который поддерживает C++ 11.

MySQL Client Library

Чтобы собрать Connector/C++ из исходных текстов, библиотека клиента MySQL C API может потребоваться:

Как правило, библиотека клиента MySQL устанавливается, когда MySQL устанавливается. Однако проверьте свою документацию по операционной системе на другие опции инсталляции.

Чтобы определить, где найти библиотеку клиента, установите MYSQL_DIR в CMake соответственно во время конфигурации по мере необходимости (см. раздел 4.4 ).

Библиотеки Boost C++

Чтобы собрать Connector/C++ библиотеки Boost C++ необходимы, только если вы компилируете legacy JDBC API или если версия библиотеки стандарта C++ в вашей системе не осуществляет конвертер UTF8 (codecvt_utf8).

Если библиотеки Boost C++ необходимы, Boost 1.59.0 или выше должен быть установлен. Чтобы получить Boost и его инструкции по установке, посетите официальный сайт Boost .

После установки Boost используйте опцию WITH_BOOST для CMake, чтобы указать, где искать файлы Boost (см. раздел 4.4 ):

cmake [other_options] -DWITH_BOOST=/usr/local/boost_1_59_0

Поддержка SSL

Используйте опцию WITH_SSL в CMake, чтобы определить, которую библиотеку SSL использовать, собирая Connector/C++. OpenSSL 1.0.x или выше требуется. С Connector/C++ 8.0.18 возможно собрать с OpenSSL 1.1.

Для получения дополнительной информации об опции WITH_SSL и библиотеках SSL, посмотрите раздел 4.4 .

4.2. Получение и распаковка исходного текста Connector/C++

Чтобы получить исходный текст Connector/C++, посетите Connector/C++ downloads page. Альтернативно, клонируйте исходное хранилище Connector/C++ Git.

Исходные тексты Connector/C++ упакованы как сжатый файл tar или архив Zip, обозначенный здесь как PACKAGE .tar.gz или PACKAGE.zip . Исходные тексты в файле tar или Zip могут использоваться на любой поддерживаемой платформе.

Дистрибутив, когда распакован, включает файл INFO_SRC, который предоставляет информацию о версии продукта и исходном хранилище, из которого был произведен. Пакет также включает другие файлы документации, такие как перечисленные в главе 3.

Чтобы распаковать сжатый файл tar , используйте эту команду в намеченном инсталляционном каталоге:

tar zxvf PACKAGE.tar.gz

После распаковки пакета, соберите его, используя соответствующие инструкции для вашей платформы далее в этой главе.

Чтобы установить из пакета Zip (файл .zip), используйте WinZip или другой инструмент, который может читать файлы .zip, чтобы распаковать файл в место по вашему выбору. После распаковки пакета соберите его, используя соответствующие инструкции для вашей платформы далее в этой главе.

Чтобы клонировать код Connector/C++ из репозитория исходного кода, расположенного на GitHub в https://github.com/mysql/mysql-connector-cpp:

git clone https://github.com/mysql/mysql-connector-cpp.git

Эта команда должна создать каталог mysql-connector-cpp, содержащий копию всего исходного дерева Connector/C++.

Команда git clone устанавливает источником образ master, который содержит последние исходные тексты. Опубликованный код находится в образе 8.0 (образ 8.0 содержит те же самые исходные тексты, что и master). Если необходимо, используйте git checkout в исходном каталоге, чтобы выбрать желаемый образ. Например, чтобы построить Connector/C++ 8.0:

cd mysql-connector-cpp
git checkout 8.0

После клонирования хранилища постройте пакет, используя соответствующие инструкции для вашей платформы далее в этой главе.

После операции checkout, чтобы получить исходное дерево, выполняйте периодически git pull, чтобы обновить ваши данные до последней версии.

4.3. Установка Connector/C++ из исходных текстов

Чтобы установить Connector/C++ из исходных текстов, проверьте, что ваша система удовлетворяет требования, обрисованные в общих чертах в разделе 4.1.

Настройка Connector/C++

Используйте CMake, чтобы формировать и построить Connector/C++. Настройка выполняется этой командой, где concpp_source это каталог, содержащий исходный код Connector/C++:

cmake concpp_source

Может быть необходимо определить другие варианты в команде конфигурации. Некоторые примеры:

Если вы формируете и строите тестовые программы позже, используйте те же самые опции CMake, как при сборке Connector/C++ (-G, WITH_BOOST, BUILD_STATIC и прочие). Исключения: аргументы пути будут отличаться, и вы не должны определять CMAKE_INSTALL_PREFIX.

Для получения информации о параметрах конфигурации CMake см. раздел 4.4 .

Сборка Connector/C++

После формирования Connector/C++ соберите его, используя эту команду:

cmake --build . --config build_type

Опция --config необязательна. Это определяет конфигурацию сборки, чтобы использовать, такую как Release или Debug. Если вы опускаете --config, значение по умолчанию Debug.

Если вы определяете --config, определите то же самое значение --config для более поздних шагов, таких как шаги, которые устанавливают Connector/C++ или строят тестовые программы.

Если сборка прошла успешно, она создает библиотеки соединителя в каталоге сборки. Для Windows ищите библиотеки в подкаталоге с тем же самым именем, что и значение build_type опции --config.

Если вы включили опцию WITH_JDBC , чтобы включить соединитель JDBC, следующие дополнительные файлы библиотеки создаются.

Установка Connector/C++

Чтобы установить Connector/C++, используйте эту команду:

cmake --build . --target install --config build_type

Подтверждение функциональности Connector/C++

Чтобы проверить функциональность соединителя, постройте и запустите одну или больше тестовых программ, включенных в каталог testapp. Создайте тестовый каталог и перейдите в него. Тогда дайте следующие команды:

cmake [other_options] -DWITH_CONCPP=concpp_install concpp_source/testapp
cmake --build . --config=build_type

WITH_CONCPP используется только, чтобы формировать тестовое приложение. other_options состоит из опций, с которыми вы раньше формировали сам Connector/C++ (-G, WITH_BOOST, BUILD_STATIC и т.д.). concpp_source это каталог, содержащий исходный код Connector/C++, concpp_install это каталог, где устанавливается Connector/C++:

Предыдущие команды должны создать программы devapi_test и xapi_test в каталоге run. Если вы включили WITH_JDBC формируя тестовые программы, также создается программа jdbc_test.

Перед тестовыми программами гарантируйте, что экземпляр сервера MySQL с включенным X Plugin. Самый легкий способ устроить это состоит в том, чтобы использовать скрипт mysql-test-run.pl из дистрибутива MySQL. Для MySQL 8.0 X Plugin позволен по умолчанию, поэтому выполните эту команду в каталоге mysql-test:

perl mysql-test-run.pl --start-and-exit

Для MySQL 5.7 X Plugin должен быть позволеен явно, поэтому добавьте опцию:

perl mysql-test-run.pl --start-and-exit --mysqld=--plugin-load=mysqlx

Команда должна запустить испытательный экземпляр сервера, слушающий на порте 13009 вместо стандартного порта (33060) с включенным X Plugin.

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

run/devapi_test mysqlx://root@127.0.0.1:13009
run/xapi_test mysqlx://root@127.0.0.1:13009

Строка подключения принимает доступность учетной записи пользователя root без любого пароля и программа предполагает, что есть схема test.

Чтобы проверить jdbc_test, вам нужен сервер MySQL, но не требуется X Plugin. Кроме того, опции связи должны быть в форме, определенной API JDBC. Передайте имя пользователя как второй аргумент. Например:

run/jdbc_test tcp://127.0.0.1:13009 root

4.4. Параметры конфигурации исходного текста Connector/C++

Connector/C++ понимает опции CMake, которые описаны в этой секции.

Таблица 4.1. Параметры конфигурации исходного текста Connector/C++

Форматы Описание Значение по умолчанию Пояснение
BUILD_STATIC Построить ли статические библиотеки OFF
BUNDLE_DEPENDENCIES Связать ли внешние библиотеки зависимости с соединителем OFF
CMAKE_BUILD_TYPE Тип выполняемой сборки Debug
CMAKE_INSTALL_DOCDIR Инсталляционный каталог документации8.0.14
CMAKE_INSTALL_INCLUDEDIR Инсталляционный каталог заголовочных файлов 8.0.14
CMAKE_INSTALL_LIBDIR Инсталляционный каталог библиотек8.0.14
CMAKE_INSTALL_PREFIX Основной каталог установки /usr/local
MAINTAINER_MODE Только для внутреннего использования OFF8.0.12
MYSQLCLIENT_STATIC_BINDING Компоновать ли с общей библиотекой клиента MySQL ON8.0.16
MYSQLCLIENT_STATIC_LINKING Компоновать ли статически с библиотекой клиента MySQL ON8.0.16
MYSQL_CONFIG_EXECUTABLE Путь к программе mysql_config ${MYSQL_DIR}/bin/mysql_config
MYSQL_DIR Каталог установки MySQL Server
STATIC_MSVCRT Использовать статическую библиотеку времени выполнения
WITH_BOOST Каталог исходных текстов Boost
WITH_DOC Произвести ли документацию Doxygen OFF
WITH_JDBC Построить ли библиотеку legacy JDBC OFF8.0.7
WITH_SSLТип поддержки SSL system 8.0.7