因此,unix root 用户可以无需密码连接到 mysql root 用户:
root@server $ mysql -uroot
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 27
Server version: 5.7.13-0ubuntu0.16.04.2 (Ubuntu)
但是unix用户redmine不能:
root@server $ sudo -u redmine mysql -uroot
ERROR 1698 (28000): Access denied for user 'root'@'localhost'
我猜测 mysqld 正在通过连接的 unix 域套接字检查 uid=1,但我在 mysql 文档中找不到对此的解释。(strace 显示 mysql shell 进程成功打开 unix 域套接字,并在收到服务器回复后将其关闭)
作为非 root unix 用户,如何以无密码的方式连接到数据库 root 用户?(请不要对我说“这不是一个好主意”)
答案1
也许 root 用户有一个/root/.my.cnf
包含登录凭据的文件?您可以配置~redmine/.my.cnf
以包含您的凭据:
[client]
password="yourpassword"
更多信息,请参阅MySQL 文档。