Я запускаю MariaDB (libmysql - 5.5.41-MariaDB), и сегодня я заметил, что не могу перейти в mysql через командную строку для создания файла дампа. Это вызовет ошибку:
mysql: не удается прочитать каталог /etc/my.cnf. (Код ошибки: 2) Неустранимая ошибка при обработке значений по умолчанию. Программа прервана
Не уверен, зачем ему читать каталог с именем «my.cnf». но я вижу каталог под названием "my.cnf.d" в папке etc. Возможно, это какая-то опечатка, но когда я зашел в свой файл my.cnf, я не заметил никаких настроек для этого. Единственное, что с ним тесно связано:
#
# include all files from the config directory
#
!includedir /etc/my.cnf.d
Это то, что недавно произошло, и я ничего не изменил в настройках, поэтому я не уверен, что происходит с mariadb. Любая помощь будет оценена.
РЕДАКТИРОВАТЬ: Хорошо, я решил проблему, выполнив mkdir my.cnf. (не уверен, для чего нужен этот каталог, поскольку в нем ничего нет. Никогда ничего не менял в my.cnf, чтобы он начал требовать этот каталог ..
решение на самом деле простое.
!includedir /etc/my.cnf.d
это ваша последняя строка в /etc/my.cnf, поэтому mysql не может прочитать полностью '/etc/my.cnf.d' только '/etc/my.cnf'.
Вам просто нужно добавить еще одну строку, чтобы mysql мог ее прочитать.
!includedir /etc/my.cnf.d
# add new line here
Учитывая, что он работает, когда вы отключаете чтение значений по умолчанию (--no-defaults), проблема находится где-то в файлах по умолчанию, их разрешениях или разрешениях каталогов, содержащих их.
Внимательно изучите права доступа к / etc, /etc/my.cnf, /etc/my.cnf.d, файлам внутри /etc/my.cnf.d, а также к ~ / .my.cnf.
Проверьте содержимое каждого файла на наличие дополнительных включений и любых других директив, которые могут обращаться к файлам.
Если SELinux включен, проверьте содержимое /var/log/audit.log на наличие соответствующих запрещенных записей AVC.
Вы должны добавить новую пустую строку после! Includedir /etc/my.cnf.d
! includedir /etc/my.cnf.d
ПУСТАЯ СТРОКА
Вы должны просто нажать «ввод» в конце этой строки:! Includedir /etc/my.cnf.d
Очень странно: сбой произошел также внезапно (после перезапуска контейнера докеров) - в MySQL Ver 14.14 Distrib 5.7.23, Debian 9.5, Docker 17.12.1-ce
Попробовать много чего не получилось, все разрешения правильные (афайк).
Последний вариант заключался в том, чтобы следовать «Редактировать» автора вопроса, и это сработало!
Я сделал:
mv /etc/my.cnf /etc/_my.cnf # there was just the line [mysql] in it, nothing else
mkdir /etc/my.cnf
chown mysql:mysql /etc/my.cnf
теперь после бега service mysql start
он внезапно говорит: «Сервер MySQL уже запущен». После service mysql restart
все работает как до выключения docker conatainer.
Это отсутствие подключения происходит со мной каждые пару раз, когда я перезагружаю свой MacBook. Я думаю, это как-то связано с конкурирующими версиями Mysql. Собственный Mac MySql VS. Сварить MySql. Это все, что мне нужно сделать:
sudo mkdir /usr/local/etc/my.cnf.d
Затем перезапустите мой терминал. Я ссылаюсь на эту статью раз в месяц или два. /usr/local/etc/my.cnf
включает в себя /usr/local/etc/my.cnf.d
каталог, и это не удается, если каталог не существует. Так что мне просто нужно создать каталог. Раздражающий маленький баг, но его легко исправить.
Я решил эту проблему в macOS Catalina mariadb.
mkdir /usr/local/etc/my.cnf.d
brew services stop mariadb
brew services start mariadb