"service mysql reload" mysqladmin:在 'localhost' 连接到服务器失败但重新启动工作正常

"service mysql reload" mysqladmin: connect to server at 'localhost' failed BUT restart works fine

重新加载 mysql 失败。但是重启和状态都可以正常工作。

关于如何fix/troubleshoot重新加载有什么想法吗?

重新启动时,它还需要大约 20 秒才能重新启动,就像某些东西在完成之前超时一样。我尝试创建一个本地 .my.cnf 以 root 认为它是 "mysqladmin" 的密码问题,但结果相同。

我认为可能相关的其他项目。 "skip-name-resolve" 已启用,在这样做时 mysql 提到的错误日志无法从 "mysql" table 中的条目为用户和数据库 table 解析本地主机,因此更改了所有 "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!

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