Ошибка libmysqlclient.so.21 в VMBitrix 9 после обновления MySQL до 8.4
После обновления MySQL до версии 8.4 в VMBitrix 9 задания из pool перестали работать и завершаются с ошибкой. Например, при создании сайта через меню 8-> create site возникает следующая ошибка:
install_driver(mysql) failed: Can't load '/usr/lib64/perl5/vendor_perl/auto/DBD/mysql/mysql.so' for module DBD::mysql: libmysqlclient.so.21: cannot open shared object file: No such file or directory
При проверке библиотек командой ldconfig -p | grep libmysqlclient обнаруживается версия libmysqlclient.so.24, в то время как система ожидает libmysqlclient.so.21. Сами сайты при этом работают без ошибок.
Причина
- Модуль Perl
DBD::mysqlскомпилирован для библиотекиlibmysqlclient.so.21, которая отсутствует в системе после обновления MySQL. - Вместо неё присутствует версия
libmysqlclient.so.24, что вызывает ошибку загрузки модуля.
Решение
Создайте символическую ссылку с версией .21 на существующую библиотеку .24. Выполните команду от root:
ln -sf /usr/lib64/mysql/libmysqlclient.so.24 /usr/lib64/libmysqlclient.so.21
После этого проверьте, что библиотека доступна:
ldconfig -p | grep libmysqlclient.so.21
Если необходимо, перезапустите соответствующие сервисы (например, systemctl restart httpd или systemctl restart nginx).
Примечание: Данное исправление носит временный характер. Для полного устранения проблемы рекомендуется обновить модуль DBD::mysql до версии, совместимой с MySQL 8.4, или дождаться официального обновления VMBitrix.