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

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

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

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

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

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

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

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

MySQL Client Library

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

  • Сборка соединителя JDBC требует библиотеки клиента от MySQL 8.0 (8.0.11 или выше) или MySQL 5.7 (5.7.9 или выше). Это происходит, когда Connector/C++ формируется с опцией WITH_JDBC для CMake, чтобы включить соединитель JDBC.

  • Для Connector/C++ без соединителя JDBC, библиотека клиента не требуется.

Как правило, библиотека клиента 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

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

  • По умолчанию эти инсталляционные места используются:

    • /usr/local/mysql/connector-c++-8.0 (Unix-системы).

    • User_home /MySQL/"MySQL Connector C++ 8.0" (Windows).

    Чтобы определить инсталляционное место явно, используйте опцию CMAKE_INSTALL_PREFIX:

    -DCMAKE_INSTALL_PREFIX=path_name
    
  • В Windows можно использовать опцию -G, чтобы выбрать конкретный генератор:

    • -G "Visual Studio 14 2015 Win64" (сборки 64-bit).

    • -G "Visual Studio 14 2015" (сборки 32-bit).

    Консультируйтесь с руководством CMake или cmake --help, чтобы узнать, какие генераторы поддерживаются вашей версией CMake. Однако может случиться так, что ваша версия CMake поддерживает больше генераторов, чем можно на самом деле использовать, чтобы построить Connector/C++.

  • Если нужны библиотеки Boost C++, используйте опцию WITH_BOOST, чтобы определить их местоположение:

    -DWITH_BOOST=path_name
    
  • По умолчанию создаются динамические (общие) библиотеки. Чтобы построить статические библиотеки, включите опцию BUILD_STATIC:

    -DBUILD_STATIC=ON
    
  • По умолчанию соединитель legacy JDBC не строится. Если вы планируете построить этот соединитель, дополнительная команда git необходима, чтобы выполнить инициализацию подмодуля (сделайте это в исходном каталоге верхнего уровня):

    git submodule update --init
    

    Чтобы включать соединитель JDBC в сборку, включите опцию WITH_JDBC:

    -DWITH_JDBC=ON
    

Если вы формируете и строите тестовые программы позже, используйте те же самые опции 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.

  • Если вы строите динамические библиотеки, у них есть эти имена:

    • libmysqlcppconn8.so.1 (Unix).

    • libmysqlcppconn8.1.dylib (macOS).

    • mysqlcppconn8-1-vs14.dll (Windows).

  • Если вы строите статические библиотеки, у них есть эти имена:

    • libmysqlcppconn8-static.a (Unix, macOS).

    • mysqlcppconn8-static.lib (Windows).

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

  • Если вы строите динамические библиотеки, у них есть эти имена:

    • libmysqlcppconn.so.7 (Unix).

    • libmysqlcppconn.7.dylib (macOS).

    • mysqlcppconn-7-vs14.dll (Windows).

  • Если вы строите статические библиотеки, у них есть эти имена:

    • libmysqlcppconn-static.a (Unix, macOS).

    • mysqlcppconn-static.lib (Windows).

Установка 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

  • -DBUILD_STATIC=bool

    По умолчанию динамические (общие) библиотеки строятся. Если этот выбор позволен, статические библиотеки строятся вместо этого.

  • -DBUNDLE_DEPENDENCIES= bool

    Это внутренний выбор, используемый для создания пакетов Connector/C++.

  • -DCMAKE_BUILD_TYPE= type

    Это тип сборки:

    • Debug: Отключить оптимизацию и произвести отладочную информацию. Это умолчание.

    • Release: Включить оптимизацию.

    • RelWithDebInfo: Включить оптимизацию и произвести отладочную информацию.

  • -DCMAKE_INSTALL_DOCDIR= dir_name

    Инсталляционный каталог документации, относительно CMAKE_INSTALL_PREFIX. Если не определен, то установить в CMAKE_INSTALL_PREFIX.

    Этот выбор требует включения опции WITH_DOC . Этот выбор был добавлен в Connector/C++ 8.0.14.

  • -DCMAKE_INSTALL_INCLUDEDIR= dir_name

    Инсталляционный каталог заголовков относительно CMAKE_INSTALL_PREFIX. Если не определен, установить в include. Этот выбор был добавлен в Connector/C++ 8.0.14.

  • -DCMAKE_INSTALL_LIBDIR= dir_name

    Инсталляционный каталог библиотеки, относительно CMAKE_INSTALL_PREFIX. Если не определен, установить в lib64 или lib. Этот выбор был добавлен в Connector/C++ 8.0.14.

  • -DCMAKE_INSTALL_PREFIX= dir_name

    Где установить Connector/C++.

  • -DMAINTAINER_MODE=bool

    Это внутренний выбор, используемый для создания пакетов, добавлен в Connector/C++ 8.0.12.

  • -DMYSQLCLIENT_STATIC_BINDING= bool

    Связаться ли с общей библиотекой клиента MySQL. Этот выбор используется только если отключена MYSQLCLIENT_STATIC_LINKING, чтобы позволить динамическое подключение библиотеки клиента MySQL. В этом случае, если включена MYSQLCLIENT_STATIC_BINDING (по умолчанию), Connector/C++ компонуется с общей библиотекой клиента MySQL. Иначе общая библиотека клиента MySQL загружена и отображена во время выполнения.

    Этот выбор применяется, только если вы строите legacy JDBC (то есть, только если включена WITH_JDBC ). Это было добавлено в Connector/C++ 8.0.16.

  • -DMYSQLCLIENT_STATIC_LINKING= bool

    Компоновать ли статически с библиотекой клиента MySQL. По умолчанию ON (используйте статическую компоновку с библиотекой клиента). Выключение этого выбора позволяет динамическую компоновку с библиотекой клиента.

    Этот выбор применяется, только если вы собираете legacy JDBC (то есть, только если включена опция WITH_JDBC ). Это было добавлено в Connector/C++ 8.0.16.

  • -DMYSQL_CONFIG_EXECUTABLE= file_name

    Путь к программе mysql_config .

    Не в Windows CMake проверяет, установлена ли опция MYSQL_CONFIG_EXECUTABLE. Если нет, CMake пытается определить местонахождение mysql_config в местах по умолчанию.

    Этот выбор применяется, только если вы собираете legacy JDBC (то есть, только если включена опция WITH_JDBC ).

  • -DMYSQL_DIR=dir_name

    Каталог, где MySQL устанавливается.

    Этот выбор применяется, только если вы собираете legacy JDBC (то есть, только если включена опция WITH_JDBC ).

  • -DSTATIC_MSVCRT=bool

    Только Windows. Использовать статическую библиотеку времени выполнения (опция компилятора /MT*). Этот выбор мог бы быть необходимым, если код, который использует Connector/C++, также пользуется статической библиотекой времени выполнения.

  • -DWITH_BOOST=dir_name

    Каталог установки исходных текстов Boost.

  • -DWITH_DOC= bool

    Позволить ли произвести документацию Doxygen. С Connector/C++ 8.0.16 этот выбор также строит документацию Doxygen для цели all.

  • -DWITH_JDBC=bool

    Построить ли legacy JDBC. Этот выбор отключен по умолчанию. Если это позволено, приложения Connector/C++ 8.0 могут использовать legacy JDBC API, аналогично Connector/C++ 1.1.

  • -DWITH_SSL={ ssl_type| path_name}

    Этот выбор определяет, которую библиотеку SSL использовать, собирая Connector/C++. Значение выбора указывает на тип поддержки SSL, чтобы включить или путь к установкн SSL, чтобы использовать:

    • ssl_type может быть одним из следующих:

      • system: Используйте системную библиотеку OpenSSL.

        Запуская приложение, которое скомпоновано с динамической библиотекой соединителя, библиотеки OpenSSL, от которых зависит соединитель, должны быть правильно найдены, если они размещаются в файловой системе рядом с библиотекой соединителя. Приложение должно также работать, когда библиотеки OpenSSL устанавливаются в стандартных местах в масштабе всей системы. Это предполагает, что версия OpenSSL ожидаема Connector/C++.

        Сжатые файлы tar или Zip для Windows, Linux и macOS должны содержать необходимые библиотеки OpenSSL в том же самом месте, как библиотека соединителя.

        За исключением Windows, должно быть возможно запустить приложение, скомпонованное с динамической библиотекой соединителя, когда библиотека соединителя и библиотеки OpenSSL размещаются в нестандартном месте, при условии, что эти места были сохранены как пути во время выполнения, создавая приложение (опция gcc -rpath).

        В Windows может быть запущено приложение, которое скомпоновано с разделенной библиотекой соединителя, только если библиотека соединителя и библиотеки OpenSSL сохранены:

        • В системной папке Windows.

        • В той же самой папке, где приложение.

        • В папке, перечисленной в PATH.

        Если приложение скомпоновано со статической библиотекой соединителя, остается верным, что необходимые библиотеки OpenSSL должны быть найдены в одном из предыдущих мест.

    • path_name это путь к установке SSL, чтобы использовать. Это должно быть путем к установленной библиотеке OpenSSL и должно указать на каталог, содержащий подкаталог lib с библиотеками OpenSSL.

      Определение пути для установки OpenSSL может быть предпочтительнее использования значения ssl_type = system потому, что это может препятствовать тому, чтобы CMake обнаружил и использовал более старую или неправильную версию OpenSSL, установленную в системе.

Поиск

 

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

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