使用-defaults-file=/etc/mysql/debian.cnf 时mysqladmin 访问被拒绝

mysqladmin Access Denied when using -defaults-file=/etc/mysql/debian.cnf

使用 mysqladmin --defaults-file=/etc/mysql/debian.cnf 时,mysqladmin 失败并出现以下错误:

mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: YES)'

但是如果我尝试使用如下用户名和密码登录:mysqladmin -uroot -pmysupersecretpass 它有效。

包含 /etc/mysql/debian.cnf

[client]
host     = localhost
user     = root
password = mysupersecretpass
socket   = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
host     = localhost
user     = root
password = mysupersecretpass
socket   = /var/run/mysqld/mysqld.sock
basedir  = /usr

不过我也可以使用 mysql -u root -p 登录。

谁能告诉我 /etc/mysql/debian.cnf 有什么问题吗?

您需要在密码两边加上双引号。: password="mysecretpw"

如果没有双引号,就无法读取您密码中的特殊字符。