0

我最近使用 MariaDB 设置了一个数据库,现在每天从 logrotate 收到错误消息(见下文)。我正在使用 root DB 用户的密码。根据我在网上找到的内容,我设置了 my.cnf 文件,但它没有改变任何东西。错误消息状态(使用密码:否)。我在网上看到的一些帖子说“是”。但是,我在网上或 MariaDB 设置文件中找不到任何文档,我可以告诉 logrotate 它应该使用密码。

错误信息:

/etc/cron.daily/logrotate: mysqladmin: connect to server at 'localhost'
failed error: 'Access denied for user 'root'@'localhost' (using password: NO)' 
error: error running shared postrotate script for '/var/log/mysql/mysql.log /var/log/mysql/mysql-slow.log /var/log/mysql/mariadb-slow.log /var/log/mysql/error.log ' 
run-parts: /etc/cron.daily/logrotate exited with return code 1

/root/.my.cnf

[mysqladmin]
password = "password"
user = root

[mysql]
password = "password"
user = root

我在 Debian Stretch 上运行 MariaDB 10.1.37

4

1 回答 1

0

我建议您为 mysqladmin 提供单独的用户并为其提供最低权限。这可能会减少黑客的脆弱性。

mysqladmin就像mysql,它使用参数来决定什么用户,什么主机,以及是否要求输入密码:

  • -p -- 动态询问密码(难以在批处理脚本中使用)
  • -pMyPwd -- 提供密码(不是很安全)
  • (以上都不是)——没有密码,或者......

您可以使用mysql_config_editor特殊方式设置密码,这样您就不需要包含-p.

于 2019-01-16T22:34:06.977 回答