Spec-Zone.ru › MySQL Connectors 1.0
Глава 2 Реализации API MySQL C

Глава 2 Реализации API MySQL C

API MySQL C на основе языка C, который приложения, написанные на C, могут использовать для взаимодействия с MySQL Server. Приложения-клиенты ссылаются на заголовочные файлы API C во время компиляции и связываются с файлом библиотеки API C во время линковки. Библиотека выпускается в двух версиях, в зависимости от того, как приложение должно взаимодействовать с сервером:

  • libmysqlclient: Версия библиотеки для клиента, используемая приложениями, которые взаимодействуют через сетевое соединение в качестве клиента процесса автономного сервера.

  • libmysqld: Версия библиотеки встроенного сервера, используемая для приложений, которые должны включать встроенный сервер MySQL в само приложение. Приложение взаимодействует со своим собственным частным экземпляром сервера.

    Примечание

    Библиотека встроенного сервера libmysqld устарела начиная с MySQL 5.7.19 и удалена в MySQL 8.0.

Обе библиотеки имеют одинаковый интерфейс. С точки зрения вызовов API C, приложение взаимодействует с автономным сервером так же, как и со встроенным сервером. Данный клиент может быть разработан для взаимодействия с автономным или встроенным сервером, в зависимости от того, с чем он связан - libmysqlclient или libmysqld во время компиляции.

Для получения заголовочных файлов и файлов библиотек API C, необходимых для построения приложений-клиентов API C, установите дистрибутив MySQL Server. Дистрибутивы сервера включают как libmysqlclient, так и libmysqld.

Вы можете установить двоичный дистрибутив, содержащий предварительно скомпилированные файлы API C, или использовать исходный дистрибутив MySQL Server и сами скомпилировать файлы API C. Построение MySQL Server также создаёт libmysqlclient и libmysqld; см. . Эти библиотеки клиентов не могут быть построены в одиночку, но необязательный параметр CMake к этому относится.

Названия файлов библиотек, которые необходимо использовать при линковке приложений-клиентов API C, зависят от типа библиотеки и платформы, для которой построен дистрибутив:

  • В системах Unix (и подобных Unix), статическая библиотека - libmysqlclient.a. Динамическая библиотека - libmysqlclient.so в большинстве систем Unix и libmysqlclient.dylib на macOS.

    Для дистрибутивов, включающих библиотеки встроенного сервера, соответствующие названия библиотек начинаются с libmysqld, а не libmysqlclient.

  • В Windows статическая библиотека - mysqlclient.lib, а динамическая библиотека - libmysql.dll. Дистрибутивы Windows также включают libmysql.lib - статическую библиотеку импорта, необходимую для использования динамической библиотеки.

    Для дистрибутивов, включающих библиотеки встроенного сервера, соответствующие названия библиотек - mysqlserver.lib, libmysqld.dll и libmysqld.lib.

    Дистрибутивы Windows также включают набор отладочных библиотек. Они имеют те же имена, что и библиотеки без отладки, но находятся в библиотеке lib/debug. Вы должны использовать отладочные библиотеки при компиляции клиентов, построенных с использованием отладочной среды выполнения C.

В Unix вы также можете увидеть библиотеки, которые включают _r в именах. До MySQL 5.5 они строились как потокобезопасные (перекомпилируемые) библиотеки отдельно от библиотек без _r. Начиная с 5.5 обе библиотеки одинаковы, а имена _r являются символическими ссылками на соответствующие имена без _r. Нет необходимости использовать библиотеки _r. Например, если вы используете mysql_config для получения флагов линковщика, вы можете использовать mysql_config --libs во всех случаях, даже для потоковых клиентов. Нет необходимости использовать mysql_config --libs_r.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/c-api-5.7-en/c-api-implementations.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API