我有一个/root/.my.cnf
存储 mysql root 用户密码的文件:
[client]
password = "my password"
当我以系统 root 身份登录并进入 mysql 时,我获得无密码登录:
myuser@local:$ sudo su
root@local:$ mysql
mysql>
但是当我尝试使用 sudo 执行相同操作时,访问被拒绝:
myuser@local:$ sudo mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
我怎样才能sudo mysql
以 mysql root 用户身份登录,而无需输入密码?
答案1
sudo -i mysql
也应该可以工作——应该在一个新的交互式 shell 下运行 mysql。
答案2
如果您被锁定,并且您可以以 sudo 身份输入的唯一命令是 mysqldump(非交互式),您可能希望通过 --defaults-file 参数添加 .my.cnf 选项。
答案3
该命令sudo su -c "mysql"
将产生预期的效果。