Spec-Zone .ru
спецификации, руководства, описания, API

21.7. libmysqld, Библиотека Сервера MySQL Embedded

21.7.1. Компиляция Программ с libmysqld
21.7.2. Сервер MySQL When Using the Embedded ограничений
21.7.3. Опции со Встроенным Сервером
21.7.4. Встроенные Примеры Сервера

Встроенная библиотека сервера MySQL позволяет выполнить полнофункциональный сервер MySQL в клиентском приложении. Основные преимущества являются увеличенной скоростью и более простым управлением для встраиваемых приложений.

Встроенная библиотека сервера основана на клиент-серверной версии MySQL, который пишется в C/C++. Следовательно, встроенный сервер также пишется в C/C++. Нет никакого встроенного сервера, доступного на других языках.

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

Таблица 21.35. MySQL Embedded Server Library Functions

Функция

Когда Вызвать

mysql_library_init()

Вызовите это прежде, чем любая другая функция MySQL будет вызвана, предпочтительно рано в main() функция.

mysql_library_end()

Вызовите это перед своими выходами программы.

mysql_thread_init()

Вызовите это в каждом потоке, Вы создаете тот MySQL доступов.

mysql_thread_end() Вызовите это перед вызовом pthread_exit().

Затем, соедините свой код с libmysqld.a вместо libmysqlclient.a. Чтобы гарантировать совместимость на уровне двоичных кодов между Вашим приложением и библиотекой сервера, всегда компилируйте свое приложение против заголовков для той же самой серии MySQL, который использовался, чтобы скомпилировать библиотеку сервера. Например, если libmysqld был скомпилирован против заголовков MySQL 5.1, не компилируйте свое приложение против заголовков MySQL 5.5, или наоборот.

Поскольку mysql_library_xxx() функции также включаются в libmysqlclient.a, можно измениться между встроенным и клиент-серверной версией, только соединяя Ваше приложение с правильной библиотекой. См. Раздел 21.8.7.40,"mysql_library_init()".

Одно различие между встроенным сервером и автономным сервером - то, что для встроенного сервера, аутентификация для соединений отключается по умолчанию. Чтобы использовать аутентификацию для встроенного сервера, определите HAVE_EMBEDDED_PRIVILEGE_CONTROL флаг компилятора, когда Вы вызываете CMake, чтобы сконфигурировать Ваше распределение MySQL. См. Раздел 2.9.4, "MySQL Source-Configuration Options".