MySQL Workbench 连接到在 Google Cloud VM 实例中运行的 MySQL 服务器

MySQL Workbench 连接到在 Google Cloud VM 实例中运行的 MySQL 服务器

我有一个运行 Ubuntu 操作系统的 Google Cloud VM 实例,并且在那里安装了一个 mysql 服务器。该服务器正在运行,我可以通过以下方式检查状态sudo service mysql status

我已将 mysql my.cnf 文件修改为,

[mysql]
bind-address=0.0.0.0

我已经按如下方式设置了我的实例的防火墙,

IP                  Protocol
*******************************************
127.0.0.1/32        all
0.0.0.0/32          all
10.128.0.0/9        tcp, udp, icmp
0.0.0.0/0           tcp:22,3389,443,80 icmp

点击此处查看屏幕截图

现在在 Mysql 连接设置中,我填写了以下内容,

Connection Method: Standard TCP/IP over SSH
Parameter:
SSH Hostname: <vm external ip>:22
SSH Username: <vm username>
SSH Key File: <vm private key file>
MySQL Hostname: 127.0.0.1
MySQL Server Port: 3306
Username: <mysql username>
Password: <mysql password>

点击此处查看屏幕截图

But the test connection is giving the error,
Access denied for 'none'. Authentication that can continue: publickey

点击此处查看屏幕截图

现在,我已经通过 puttygen 创建了公钥-私钥对,并通过它成功建立了 Winscp 连接。

答案1

一个问题是您已经在 MySQL Workbench 设置中配置了公钥。

您需要在 MySQL Workbench 设置中使用您的私钥,然后将相应的公钥安装到远程主机用户的.ssh/authorized_keys文件中。

答案2

您需要在 ssh 服务器中启用 sshd 端口转发。确保您已AllowTcpForwarding yes/etc/ssh/sshd_config文件中,并且 ssh 服务已重新启动。您可以使用以下命令进行测试:

  • OpenSSH:ssh -v -L 3306:localhost:3306 user@VM

  • 油灰:plink -v -L 3306:localhost:3306 user@VM

如果您在同一个 VM 上拥有 Web 应用程序,则bind-address应该如此。localhost

相关内容