В этой главе описываются, как установить Connector/C++, используя исходные тексты или копию исходного хранилища Git.
Чтобы установить Connector/C++ из исходных текстов, следующие системные требования должны быть удовлетворены:
У вас должен быть кросс-платформенный инструмент CMake (3.0 или выше).
У вас должен быть компилятор C++, который поддерживает C++ 11.
Чтобы собрать 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
).
Чтобы собрать 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
Используйте опцию
WITH_SSL
в
CMake, чтобы определить,
которую библиотеку SSL использовать, собирая Connector/C++. OpenSSL 1.0.x
или выше требуется. С Connector/C++ 8.0.18 возможно собрать с OpenSSL 1.1.
Для получения дополнительной информации об опции
WITH_SSL
и библиотеках SSL, посмотрите
раздел 4.4
.
Чтобы получить исходный текст Connector/C++, посетите Connector/C++ downloads page. Альтернативно, клонируйте исходное хранилище Connector/C++ Git.
Исходные тексты Connector/C++ упакованы как сжатый файл
tar или архив Zip,
обозначенный здесь как
или
PACKAGE
.tar.gz
. Исходные тексты в файле tar
или Zip могут использоваться на любой поддерживаемой платформе.PACKAGE
.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, чтобы обновить ваши данные до последней версии.
Чтобы установить Connector/C++ из исходных текстов, проверьте, что ваша система удовлетворяет требования, обрисованные в общих чертах в разделе 4.1.
Используйте CMake, чтобы
формировать и построить Connector/C++. Настройка выполняется этой командой,
где concpp_source
это каталог,
содержащий исходный код Connector/C++:
cmake concpp_source
Может быть необходимо определить другие варианты в команде конфигурации. Некоторые примеры:
По умолчанию эти инсталляционные места используются:
/usr/local/mysql/connector-c++-8.0
(Unix-системы).
(Windows).User_home
/MySQL/"MySQL Connector C++ 8.0"
Чтобы определить инсталляционное место явно, используйте опцию
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++ соберите его, используя эту команду:
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++, используйте эту команду:
cmake --build . --target install --config build_type
Чтобы проверить функциональность соединителя, постройте и запустите
одну или больше тестовых программ, включенных в каталог
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
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 |
Только для внутреннего использования | OFF | 8.0.12 |
MYSQLCLIENT_STATIC_BINDING |
Компоновать ли с общей библиотекой клиента MySQL | ON | 8.0.16 |
MYSQLCLIENT_STATIC_LINKING |
Компоновать ли статически с библиотекой клиента MySQL | ON | 8.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 | OFF | 8.0.7 |
WITH_SSL | Тип поддержки SSL | system |
8.0.7 |
По умолчанию динамические (общие) библиотеки строятся. Если этот выбор позволен, статические библиотеки строятся вместо этого.
Это внутренний выбор, используемый для создания пакетов Connector/C++.
Это тип сборки:
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++.
Это внутренний выбор, используемый для создания пакетов, добавлен в 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
).
Каталог, где MySQL устанавливается.
Этот выбор применяется, только если вы собираете legacy JDBC
(то есть, только если включена опция
WITH_JDBC
).
Только Windows. Использовать статическую библиотеку времени выполнения
(опция компилятора /MT*
).
Этот выбор мог бы быть необходимым, если код, который использует
Connector/C++, также пользуется статической библиотекой времени выполнения.
Каталог установки исходных текстов Boost.
Позволить ли произвести документацию Doxygen. С Connector/C++ 8.0.16
этот выбор также строит документацию Doxygen для цели
all
.
Построить ли 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, установленную в системе.