Spec-Zone.ru › MySQL Connectors 1.0
Глава 1 Интерфейс MySQL C API

Глава 1 Интерфейс MySQL C API

Интерфейс C API предоставляет низкоуровневый доступ к протоколу MySQL клиент/сервер и позволяет программам на C получать доступ к содержимому базы данных. Код C API распространяется с MySQL и реализован в библиотеке libmysqlclient. См. Главу 2, Реализации MySQL C API.

Большинство других клиентских интерфейсов используют библиотеку libmysqlclient для связи с сервером MySQL. (Исключения составляют Connector/J и Connector/NET.) Это означает, что, например, вы можете использовать многие переменные среды, используемые другими клиентскими программами, потому что они ссылаются на эту библиотеку. Список этих переменных см. .

Инструкции по построению клиентских программ с использованием C API см. в Разделе 3.2, «Создание клиентских программ C API». Инструкции по работе с потоками см. в Разделе 3.4, «Создание многопоточных клиентских программ C API».

Примечание

Если после обновления у вас возникли проблемы со скомпилированными клиентскими программами, например, Commands out of sync или неожиданные дампы ядра, скорее всего, программы были скомпилированы с использованием старых заголовочных файлов или библиотек. В этом случае проверьте дату файла mysql.h и библиотеки libmysqlclient.a, используемых для компиляции, чтобы убедиться, что они из новой дистрибуции MySQL. Если нет, перекомпилируйте программы с новыми заголовочными файлами и библиотеками. Перекомпиляция также может потребоваться для программ, скомпилированных для общей клиентской библиотеки, если изменился номер основной версии библиотеки (например, с libmysqlclient.so.17 до libmysqlclient.so.18). Дополнительную информацию о совместимости см. в Разделе 3.5, «Запуск клиентских программ C API».

Клиенты имеют максимальный размер буфера для связи. Размер буфера, который выделяется изначально (16 КБ), автоматически увеличивается до максимального размера (по умолчанию 16 МБ). Поскольку размер буфера увеличивается только по мере необходимости, простое увеличение максимального предела не приводит к большему использованию ресурсов. Эта проверка размера в основном является мерой предосторожности против ошибочных операторов и пакетов связи.

Буфер связи должен быть достаточно большим для хранения одного SQL-запроса (для трафика клиент-сервер) и одной строки возвращенных данных (для трафика сервер-клиент). Буфер связи каждой сессии динамически увеличивается, чтобы обработать любой запрос или строку до максимального предела. Например, если у вас есть значения, которые содержат до 16 МБ данных, у вас должен быть предел буфера связи как минимум 16 МБ (как на сервере, так и на клиенте). Максимальное значение по умолчанию в клиентской библиотеке составляет 1 ГБ, но максимальное значение по умолчанию на сервере составляет 1 МБ. Вы можете увеличить это, изменив значение параметра при запуске сервера. См. .

Сервер MySQL уменьшает каждый буфер связи до байтов после каждого запроса. Для клиентов размер буфера, связанного с подключением, не уменьшается до тех пор, пока подключение не будет закрыто, в этот момент память клиента восстанавливается.

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

Spec-Zone.ru

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