Spec-Zone.ru › MySQL Connectors 1.0

3.5 Запуск программ-клиентов C API

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

Основная версия общей библиотеки клиента определяет совместимость. (Например, для libmysqlclient.so.18.1.0 основная версия равна 18.) Библиотеки, поставляемые с новыми версиями MySQL, являются прямыми заменами старых версий с тем же номером основной версии. Пока основная версия библиотеки одинакова, вы можете обновить библиотеку, и старые приложения должны продолжать работать с ней.

При попытке выполнить программу MySQL во время выполнения могут возникнуть ошибки «неопределенная ссылка». Если эти ошибки указывают на символы, начинающиеся с mysql_, или указывают на то, что библиотека libmysqlclient не найдена, это означает, что ваша система не может найти общую библиотеку libmysqlclient.so. Решение этой проблемы заключается в том, чтобы указать вашей системе искать общие библиотеки в каталоге, где находится эта библиотека. Используйте любой из следующих методов, подходящих для вашей системы:

  • Добавьте путь к каталогу, где расположена libmysqlclient.so, в переменную среды LD_LIBRARY_PATH или LD_LIBRARY.

  • В macOS добавьте путь к каталогу, где расположена libmysqlclient.dylib, в переменную среды DYLD_LIBRARY_PATH.

  • Скопируйте файлы общей библиотеки (например, libmysqlclient.so) в какой-либо каталог, который ищется вашей системой, например, в /lib, и обновите информацию о общей библиотеке, выполнив команду ldconfig. Убедитесь, что вы копируете все связанные файлы. Общая библиотека может существовать под несколькими именами, используя символические ссылки для предоставления альтернативных имён.

Если приложение связано с библиотекой встроенного сервера, сообщения об ошибках во время выполнения указывают на библиотеку libmysqld вместо libmysqlclient, но решение проблемы такое же, как описано выше.

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

Spec-Zone.ru

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