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

22.8. API MySQL C

22.8.1. Реализации API MySQL C
22.8.2. Одновременный MySQL Server и MySQL Установки Connector/C
22.8.3. Пример C Клиентские Программы API
22.8.4. Здание и Выполнение C Клиентские Программы API
22.8.5. C Структуры данных API
22.8.6. C Краткий обзор API-функции
22.8.7. C Описания API-функции
22.8.8. C API Готовые Операторы
22.8.9. C API Готовые Структуры данных Оператора
22.8.10. C API Готовый Краткий обзор Функции Оператора
22.8.11. C API Готовые Описания Функции Оператора
22.8.12. C API Поточные Функциональные Описания
22.8.13. C API Встроенные Описания Функции Сервера
22.8.14. C Клиентские Функции Плагина API
22.8.15. Общие вопросы и проблемы При использовании API C
22.8.16. Управление Автоматическим Поведением Пересоединения
22.8.17. C Поддержка API Многократного Выполнения Оператора
22.8.18. C API Готовые проблемы Оператора
22.8.19. C API Готовая Обработка Оператора Даты и Временных стоимостей
22.8.20. C Поддержка API Готового CALLОператоры

API C обеспечивает низкоуровневый доступ к протоколу клиента/сервера MySQL и позволяет программам C получить доступ к содержанию базы данных. Код API C распределяется с MySQL и реализуется в libmysqlclient библиотека Видит Раздел 22.8.1, "Реализации API MySQL C".

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

Для получения инструкций по созданию клиентских программ, используя API C, см. Раздел 22.8.4.1, "Создавая C Клиентские Программы API". Для того, чтобы запрограммировать с потоками, см. Раздел 22.8.4.2, "Пишущий C API Поточные Клиентские Программы". Чтобы создать автономное приложение, которое включает "сервер" и "клиент" в той же самой программе (и не связывается с внешним сервером MySQL), см. Раздел 22.7, "libmysqld, Библиотека Сервера MySQL Embedded".

Отметить

Если после обновления Вы испытываете проблемы со скомпилированными клиентскими программами, такой как Commands out of sync или неожиданные дампы ядра, программы были, вероятно, скомпилированы, используя старый заголовок или файлы библиотеки. В этом случае проверьте дату mysql.h файл и libmysqlclient.a библиотека, пользовавшаяся для компиляции, чтобы проверить, что они от нового распределения MySQL. В противном случае перекомпилируйте, он программирует с новыми заголовками и библиотеками. Перекомпиляция могла бы также быть необходимой для программ, скомпилированных против совместно используемой клиентской библиотеки, если номер основной версии библиотеки изменился (например, от libmysqlclient.so.15 к libmysqlclient.so.16).

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

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

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