“service mysql start”上的用户“root”@“localhost”访问被拒绝(使用密码:NO)

时间:2017-01-11 21:33:48

标签: mysql

OS

$ uname -a
Linux aurora 4.4.0-59-generic #80-Ubuntu SMP Fri Jan 6 17:47:47 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

的MySQL

$ mysqladmin --version
mysqladmin  Ver 8.42 Distrib 5.7.16, for Linux on x86_64

显然有些东西试图在 root 上登录我的mysql服务器

service mysql start

但我不知道它是什么。

/var/log/mysql/error.log中与启动服务器相关的最后一行是:

[Note] Access denied for user 'root'@'localhost' (using password: NO)

如何确定在启动时尝试以'root'@'localhost'身份登录的有问题的配置文件或服务器或应用程序?我可以提供哪些其他信息来帮助理解和解决此问题?

另外,如果我明确这样做,我可以以'root'@'localhost'身份登录。只有错误日志中的[Note]令我感到恼火,我想调试。

1 个答案:

答案 0 :(得分:1)

这是因为mysqladmin无法以root身份登录。

有罪的是这个系统单位:

/lib/systemd/system/mysql.service

执行此命令以查看守护程序是否正确启动:

ExecStartPost=/usr/share/mysql/mysql-systemd-start post

执行:

# mysqladmin ping         
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: NO)'
# echo $?
0

尽管出现错误消息,但返回值为0,因此守护程序被标记为已启动。

Debian有一个文件,其中包含执行无人参与操作的用户,要明确使用此文件,必须以这种方式执行上一个命令:

mysqladmin --defaults-file=/etc/mysql/debian.cnf ping

在解释之后,我可以忽略错误日志中的行。