当我启动/重新启动 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
经过这个解释,我可以忽略错误日志中的那一行。