notby.NET Logo

Неожиданная проблема MySQL после обновления FreeBSD

Обновил я FreeBSD до версии 13.2 и все программы до последних версий. В том числе MySQL до 8.0.35 версии. И получилось очень интересная проблема. MySQL престала запускатся, и даже не писала никаких логов никуда, как будто сервис MySQL даже не запускали. Проблема прям совсем странная.

Далее я решил запустить напрямую MySQL, и только тут я увидел что происходит…

/usr/local/libexec/mysqld

В ответ получил: ld-elf.so.1: /usr/local/libexec/mysqld: Undefined symbol "_ZNSt19bad_optional_accessD1Ev"

Искал в интернете ошибку Undefined symbol “_ZNSt19bad_optional_accessD1Ev”, особо безрезультатно. У некоторых была схожая проблема, но не с MySQL.

Я думал что-то обновилось не так, делал полную сверку файлов и так далее. Откатывал MySQL до более старой версии, но она тоже перестала работать. Решил поставить чистую систему с MySQL на виртуальную машину, чтобы проверить вдруг где-то ошибка в пакете MySQL. На чистой системе все заработало, значит что проблема где-то в системе у меня…

Выяснил что ld-elf.so.1 относится к старому пакету libc++, который уже устарел и тянется у меня в систему очень давно еще с 2014 года где-то.

Ищу пакет в системе

pkg info | grep libc++
libc++-208080

У тебя он может быть другой версии или немного с другим именем пакета.

Найден старый пакет libc++-208080, удаляю его

pkg remove libc++-208080

Пакет удален и MySQL запустилась. Такая вот интересная для меня проблема при обновлении FreeBSD произошла. Провозился я с ней несколько часов. Далее я просмотрел свои установленный пакеты, и почистил устаревшие(старые) пакеты, чтобы в дальнейшим не было таких проблем.

Возможно статья кому-то поможет, так как можно будет найти её по сообщению ошибки.