mysql 在启动时尝试连接到 localhost,[注意] 拒绝用户 'root'@'localhost' 访问(使用密码:NO)

mysql 在启动时尝试连接到 localhost,[注意] 拒绝用户 'root'@'localhost' 访问(使用密码:NO)

当我启动/重新启动 mysql 服务时,我总是在日志中看到此行:

2017-07-19T17:35:02.379166Z 5 [注意] 拒绝用户“root”@“localhost”访问(使用密码:否)

它想做什么?我该如何为该操作设置用户/密码/主机?(应该是,127.0.0.1而不是localhost因为我有skip_name_resolve=1

我的主文件夹中已经有一个 .my.cnf,但是 mysql 在 mysql 用户下运行,所以我应该在 mysql 主文件夹中创建一个 .my.cnf 文件吗?这样安全吗?

我正在使用 Percona Server 5.7

答案1

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

罪魁祸首是这个 Systemd 单元:

/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

经过这个解释,我可以忽略错误日志中的那一行。

相关内容