"service mysql reload" mysqladmin: не удалось подключиться к серверу на локальном хосте, НО перезапуск работает нормально

Перезагрузка mysql не удается. Но и перезагрузка, и статус работают нормально.

Любые идеи о том, как исправить / устранить неполадки, чтобы перезагрузка работает?

При перезапуске также требуется около 20 секунд для перезапуска, как будто время ожидания истекает до его завершения. Я попытался создать локальный.my.cnf для root, думая, что это проблема с паролем для "mysqladmin", но тот же результат.

Другие пункты, которые я думаю, могут быть связаны. "skip-name-resol" был включен, и при этом упомянутый журнал ошибок mysql не смог разрешить localhost из записей в таблице "mysql" для таблиц user и db, поэтому изменил все записи "localhost" на 127.0.0.1

Журнал ошибок сказал:

"[Warning] 'user' entry 'root@localhost' ignored in --skip-name-resolve mode."

Результат перезагрузки:

# sudo service mysql reload
* Reloading MySQL database server mysqld                                                                                                                                                                                                                           
mysqladmin: connect to server at 'localhost' failed
error: 'Can't connect to local MySQL server through socket 
'/var/run/mysqld/mysqld.sock' (2)'
Check that mysqld is running and that the socket: 
'/var/run/mysqld/mysqld.sock' exists!

1 ответ

Решение

mysqladmin не смог найти файл.sock, поэтому я сделал символическую ссылку на него, но при перезапуске mysql моя символическая ссылка была удалена. Я обновил свой my.cnf и закомментировал путь к файлу.sock, чтобы он использовал вместо него местоположение по умолчанию. Вот как я это понял.

# mysqladmin version
mysqladmin: connect to server at 'localhost' failed
error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)'
Check that mysqld is running and that the socket: '/var/run/mysqld/mysqld.sock' exists!

# grep "sock" /etc/mysql/my.cnf
socket                         = /var/lib/mysql/mysql.sock
socket                         = /var/lib/mysql/mysql.sock

# mysqladmin --socket=/var/lib/mysql/mysql.sock version
mysqladmin  Ver 8.42 Distrib 5.7.22, for Linux on x86_64

# ln -s /var/lib/mysql/mysql.sock /var/run/mysqld/mysqld.sock 

# mysqladmin version
mysqladmin  Ver 8.42 Distrib 5.7.22, for Linux on x86_64

Это работало только до тех пор, пока перезапуск не удалил.sock, поэтому убедитесь, что мой конфиг использует вместо него местоположение по умолчанию.

# vi /etc/mysql/my.cnf
#socket                         = /var/lib/mysql/mysql.sock
# service mysql restart
Другие вопросы по тегам