Глава 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.