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». Чтобы создать автономное приложение, включающее «сервер» и «клиент» в одной программе (и не взаимодействующее с внешним сервером MySQL), см. .

Примечание

Если после обновления у вас возникли проблемы с откомпилированными клиентскими программами, такие как Commands out of sync или неожиданные core dump, вероятно, эти программы были скомпилированы с использованием старых заголовочных файлов или библиотек. В этом случае проверьте дату файла 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-5.7-en/c-api-introduction.html

Spec-Zone.ru

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