guest OS ---> Ubuntu 22.04.1 LTS
host OS ----> MacOS 12.5.1
VMware Fusion: Player Version 12.2.4 (20071091)
mysql: Ver 8.0.30-0ubuntu0.22.04.1 for Linux on x86_64 ((Ubuntu))
mysql Workbench 8.0.30
我正在尝试配置 mysql Workbench 以连接到虚拟机中托管的 mysql 服务器。我拥有并控制主机和客户机操作系统以及 mysql 服务器。
我可以通过 VMware 的“连接到 SSH”选项连接到 Ubuntu 机器。它使用服务器 172.yy.yy.yy 和端口 22。我还提供了 Ubuntu 操作系统的 u/name 和 p/wd。一切正常,我可以使用它 sudo 进入 mysql。我还可以使用拥有主机“localhost”的另一个用户登录。
我无论如何也想不出应该在 mysql workbench 中输入什么才能连接。我创建了一个远程访问用户,该用户的主机是 MacOS 的 ip 地址(我通过谷歌搜索“我的 ip”就找到了这个地址)。
我还编辑了 /etc/ssh/sshd_config 以包含:(ListenAddress xx.xx.xx.xx
其中 xx.xx.xx.xx 是我的主机操作系统的 IP 地址)。
连接方式:我已选择Standard TCP/IP over SSH
SSH 主机名:my_guest_OS's_IP_address
SSH 用户名:my_guest_OS's_username
SSH 密码:my_guest_OS's_username's_pwd
MySQL 主机名:0.0.0.0
MySQL 服务器端口:22
用户名:my_remote_mysql_login_name
密码:my_remote_mysql_login_pwd
默认架构:<leave_blank>
我目前收到以下错误信息:
Failed to Connect to MySQL at 0.0.0.0:22 through SSH tunnel at <my_guest_OS's_username>@<my_guest_OS's_IP_address> with user <my_remote_mysql_login_name>
Cannot open SSH Tunnel: Connection refused
答案1
成功!
经过进一步研究,我现在已经连接上了。有三个问题。
错误的 IP 地址。
SSH Hostname
无法通过简单地打开浏览器并在谷歌上搜索“我的 IP”来发现。我需要登录终端并使用ip route
,然后找到src
获取 SSH 主机地址的行。我读到过,我应该为远程访问创建一个单独的 mysql 用户,并且该用户的主机名应该为我要连接的 IP 地址。但事实并非如此。Workbench 似乎坚持
username@localhost
在尝试连接时使用。因此,user_remote@localhost
如果用户表中列出的用户名和主机实际上是,例如,则始终会失败[email protected]
。为了解决这个问题,我只需使用本地用户登录即可。然后 Workbench 发送user_local@hostname
,一切正常。
| user | host |
+------------------+-------------+
| user_remote | xx.xx.xx.xx |
| user_local | localhost |
+------------------+-------------+
- @matigo 是正确的。我需要 mysql 主机名和服务器端口中的 127.0.0.1 和 3306。