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.