Cod*_*key 3 mysql ssh ssh-tunnel
我一直在 Windows 上使用 Navicat 来管理我的 MySQL/Percona 实例。
几天前,我购买了一台新服务器并安装了 MariaDB 10.3.9。
当我在 putty 会话中通过 SSH 连接到盒子时,我可以很好地连接到它。 mysql -u root -p
完美地呈现出来。
但出于某种原因,Navicat 会抛出错误access denied for user 'root'@'::1' (using password: YES)
Navicat 设置与我之前一直使用的相同:
主机名:localhost 端口:3306 Mysql用户名:root Mysql密码:[root的mysql密码]
使用 SSH 隧道:是 IP 地址:[我的服务器 ip] SSH 用户名:[我的名字] SSH 密码:[我的 ssh 密码]
我不知道为什么当我手动执行它时它可以通过 SSH 工作,但当 Navicat 执行它时却不行,尽管它大概在做大致相同的事情。这是'::1'
关于什么的,这是否指出了问题?
谢谢!
实际上,MySQL 中存在三个略有不同的 root 用户。(这确实很痛苦,但永远都是这样,可能不会改变......)
MariaDB [(none)]> select Host, User from mysql.user where User = 'root';
+-----------+------+
| Host | User |
+-----------+------+
| 127.0.0.1 | root |
| ::1 | root |
| localhost | root |
+-----------+------+
3 rows in set (0.06 sec)
Run Code Online (Sandbox Code Playgroud)
用户root
与主机localhost
仅当使用 UNIX 套接字连接时才使用当通过 TCP 套接字、分别通过 IPv4 或 IPv6 连接时使用其他用户。
当您使用 Navicat 进行 ssh 端口转发时,将使用 TCP 套接字,特别是 IPv6 TCP 套接字(因为 IPv6 优于 IPv4)。因此该用户就是进行身份验证的用户。
我们大多数人通过确保所有三行的密码设置相同来处理此问题。
归档时间: |
|
查看次数: |
3058 次 |
最近记录: |