Mysql,Sequel Pro:访问被拒绝,但与终端连接正常

Mysql,Sequel Pro:访问被拒绝,但与终端连接正常

'vasya'@'%'我在远程服务器上的某些数据库上创建了一个具有所有权限的用户。

当我 ssh 到服务器时,没有mysql -u vasya -p任何问题。

但是当我尝试使用 Sequel Pro 进行 ssh 隧道时

host: 127.0.0.1
username: vasya
password: *****
port: 3306

ssh host: <My Server IP>
ssh user: <my server user that I used in terminal>
ssh password: ***********

我得到:

无法连接到主机 127.0.0.1,因为访问被拒绝。

仔细检查您的用户名和密码,并确保从您当前的位置访问是被允许的。

MySQL 说:拒绝用户“vasya”@“localhost”访问(使用密码:是)

在 my.cnf 中我已经设置了它,尽管我不认为它对于 ssh 隧道来说是必要的:

#skip-networking
bind-address = 0.0.0.0

哦,是的,我可以使用我之前创建的另一个用户成功连接 Sequel Pro,该用户与 vasya 没有什么不同。

我和 Vasya 之间可能存在什么问题?

答案1

问题是 sequel pro 使用 ssh 隧道可能会连接到localhost而不是 127.0.0.1。现在你可能认为这%可能涵盖 localhost,但事实并非如此。尝试使用相同的授权创建相同的用户,但user@%你会这样做user@localhost

答案2

搞清楚了。不知不觉中,我在服务器上运行了两个 mysql 实例——原始安装和 xampp。Sequel Pro 正在连接到原始安装,当然,原始安装中没有我新创建的用户。

然而,问题仍然存在,为什么它选择旧的 mysql 而忽略指定 xampp 安装的路径......哦,好吧。

感谢所有提供帮助的人。

答案3

我在 Ubuntu 18 上遇到了这个问题。之前在 Ubuntu 16 上可以成功连接。找到了解决方案,在这里分享,以防有人关心:

在最新的MariaDB+Ubuntu18中:

select * from mysql.user;

将显示 root@local 有插件unix_socket,这导致 Sequel Pro SSH 隧道无法使用 root 访问 mysql。

更改方式如下:

UPDATE mysql.user SET plugin = 'mysql_native_password' where host='localhost' and user='root';

然后您可以再次通过隧道登录。

相关内容