在服务器上,我已经进行了设置,root 不需要输入密码即可使用 mysql(凭据位于 ~/.mylogin.cnf 中)。现在我想通过 SSH 隧道远程连接到 mysql,并且我希望不需要输入密码。
# open the tunnel (I'm using local port 3305 because 3306 is already taken for some reason)
ssh server -L 3305:127.0.0.1:3306 -N
# now try to connect
mysql -h 127.0.0.1 -P 3305 -u root
但这行不通。错误说:错误 1045 (28000):用户“root”@“localhost”的访问被拒绝(使用密码:NO)
我究竟做错了什么?
答案1
您已经在 a 上设置了 mysql 凭据远程服务器并且你正在运行 mysql 客户端本地。
请在 ~/.mylogin.cnf 中为 localhost 设置一个 mysql 实例,端口为 3305。
答案2
您还可以在命令末尾添加 -p 以获取密码提示。
答案3
您确定可以以 root 身份打开 ssh 连接吗?某些 Linux 发行版默认限制 root ssh 访问。检查/etc/ssh/sshd_config
文件中的行
PermitRootLogin yes
PasswordAuthentication yes