«service mysql reload» mysqladmin: не удалось подключиться к серверу на локальном хосте, НО перезапуск работает нормально - PullRequest
0 голосов
/ 31 мая 2018

Перезагрузка 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 Ответ

0 голосов
/ 04 июня 2018

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
...