mysql - 无法通过 Workbench(或任何 gui)连接到数字海洋 LEMP 堆栈 MySql,但可以通过终端 mysql cmd 连接
问题描述
我在每篇关于这个主题的帖子中都尝试过建议,但没有一个对我有用,所以我发布我自己的建议,以防有人发现我错过的任何内容。
我正在将 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 user@127.0.0.1 with user mysqluser
我为试图纠正这一点所做的事情:
- 在服务器上设置 mysql config 中的 bind-address
0.0.0.0
并重新启动服务器的 mysql my.ip.address
在服务器上设置 mysql config 中的 bind-address并重新启动- 允许的 tcp 连接
- 允许通过 ufw 防火墙连接到 3306 和 33060 端口
- 创建了一个 mysql 用户,授予 'localhost'、'%' 和 '0.0.0.0' 主机的所有权限
- 尝试以 root 用户身份登录
- 尝试使用 mysql 用户的 root 用户
我可能错过了该清单上的一些东西,因为我觉得我已经尝试了一百万件事!
我什至在几天前设置的 LAMP 堆栈(不是 LEMP)上有一个不同的服务器,并且能够按照相同的步骤访问工作台上的 mysql 数据库,甚至尝试回溯和复制我所做的LAMP 服务器,但不行。
我检查了 mysql 实例的 netstats 并匹配了端口和 ip,但这不起作用,我确保 SSH 的端口是正确的,没有任何工作。
有没有人有任何提示?我一直在使用我能找到的所有“允许在数字海洋上远程连接 mysql”文章和问题,但没有任何效果。
这是我目前的 Workbench 连接配置,但我已经尝试了我能想到的每次迭代的感觉(重新用户、密码、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)
解决方案
推荐阅读
- c# - ASP.Net MVC5 中的 SmtpClient.SendAsync() 和 IDisposable
- python - Django:将查询结果分解为多个常见元素列表
- ios - 在扩展 swift 中覆盖 - 不能或不应该?
- arrays - 如果数组中的项目存在,则替换它的简单方法,如果不存在则追加它
- authentication - 在 Microsoft 扩展包中找不到 AddAuthentification 方法
- r - 使用 tidytext 删除包含停用词的 ngram
- angular - PrimeNG Dropdown:Showclear 最初显示清除图标
- android-glide - 如何在库模块中使用 GlideApp 生成的 api?
- github - 使用 jenkins 管道构建 github 拉取请求
- javascript - Beforeunload 事件未收到自定义消息