无法通过Workbench(或任何GUI)连接到数字海洋LEMP堆栈MySql,但可以通过终端mysql cmd连接

问题描述 投票:0回答:1

我在关于这个主题的每一篇文章中都尝试过建议,但没有一个对我有用,所以我发布了自己的建议,以防有人发现我错过的任何内容。

我正在将 WordPress 站点迁移到 Digital Ocean 上的 LEMP(ubuntu、apache)堆栈实例,并且我需要通过 MySQL Workbench 或本地计算机上的类似工具临时访问数据库。我计划在迁移完成后将其关闭。但是我遇到了一个非常奇怪的问题,我无法找出原因。

如果我尝试使用

登录sql实例
mysql -u user -h my.ip.address -p

我可以从本地计算机正常访问。

我还可以通过终端通过 SSH 连接到服务器本身,我已经在 ssh 配置文件中使用相同的 IP 地址以及我尝试用于工作台连接的相同用户和 ssh 密钥进行了设置。

但是,通过工作台上的 SSH 连接执行相同操作时,我不断收到错误:

Authentication failed, access denied.

Failed to connect to MySql at my.ip.address:3306 through ssh tunnel at [email protected] with user mysqluser

我为尝试纠正此问题所做的事情:

  • 在服务器上将mysql配置中的bind-address设置为
    0.0.0.0
    并重新启动服务器的mysql
  • 将mysql配置中的bind-address设置为服务器上的
    my.ip.address
    并重新启动
  • 允许 TCP 连接
  • 允许通过 ufw 防火墙连接到 3306 和 33060 端口
  • 创建了一个 mysql 用户,并授予了“localhost”、“%”和“0.0.0.0”主机的所有权限
  • 尝试以root用户身份登录
  • 尝试使用root用户作为mysql用户

我可能遗漏了该清单上的一些东西,因为我觉得我已经尝试了一百万件事!

我什至在几天前设置的 LAMP 堆栈(不是 LEMP)上有一台不同的服务器,并且能够通过遵循相同的步骤来访问工作台上的 mysql 数据库,甚至尝试回溯和复制我所做的事情在 LAMP 服务器上,但不行。

我检查了mysql实例的netstats并匹配了端口和IP,但这不起作用,我确保SSH的端口是正确的,没有任何作用。

有人有什么建议吗?我一直在使用我能找到的所有“允许在数字海洋上远程连接 mysql”文章和问题,但没有任何效果。

这是我目前的工作台连接配置,但我已经尝试了我能想到的每一次迭代(重新用户、密码、IP 地址和端口)

SSH Hostname: my.ip.address
SSH Username: user
SSH Password: user-password (also tried empty, since i have a key)
SSH Key File: same key file i use to ssh on terminal
Mysql Hostname: 127.0.0.1 (also tried my.ip.address)
MySql Server Port: 3306 (also tried 33060)
Username: MySqlUser
Password: MySqlUser-Password (works when connecting to mysql via terminal)
mysql ssh mysql-workbench digital-ocean
1个回答
0
投票

我意识到这是一篇旧文章,但我在 Ubuntu 服务器上遇到了完全相同的问题。我的 sshd_config 中有“PasswordAuthentication no”和“PubKeyAuthentication yes”,并且我能够使用我的私钥连接到服务器,但是当我尝试使用相同的密钥使用 MySQL 客户端连接到数据库时,它总是会失败。对我来说,解决方案是使用 PuttyGen 生成新的 SSH 密钥。在顶部菜单中,转到“密钥”和“保存密钥文件的参数”。确保 ppk 版本为 2 而不是 3,并选择 ECDSA 作为密钥类型。

希望这对您或遇到这篇文章的其他人有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.