前言
先声明下我的环境
软件名称 | 软件描述 | 备注 |
---|---|---|
系统 | ubuntu 4.15.0 | 腾讯云轻量应用服务器 |
数据库 | mysql Ver 14.14 Distrib 5.7.39, | |
数据库可视化操作软件 | MySQL Workbench 8.0.30 |
先前尝试过的方法:
- /etc/mysql/mysql.conf.d/mysqld.cnf 中的 bind-address 注释掉
- 将私有账号与room账号的允许登录地址范围改为%,权限改为all
- 开启防火墙,将MySQL的默认端口3306开启
均无法让 MySQL Workbench 正常连接远程数据库
而后我发现在 MySQL Workbench 中的连接方式可以使用 SSH 连接,尝试后发现连接成功,故写下解决步骤以作为参考,以下为详细附图讲解。
SSH连接步骤
-
事前声明
- 我将以自己系统并未进行过上述尝试方法,全程以假设用户已经设置完毕root账号,但是并未设置其他操作,比如防火墙、登录地址范围的起点开始讲解 前置步骤 1
-
先检查 MySQL Workbench 中是否包含着
Stendard TCP/IP over SSH 这个连接方法
是否包含序号2的连接方法,如果没有,可以尝试更新 MySQL Workbench 的版本,或者更换其他的可视化数据库管理软件,因为整个数据库连接就是建立在 SSH 的连接上的,所以这一步很重要!
前置步骤 2
- 检查系统中是否有 SSH 服务,并且是否有开启
- 详细操作可见CSDN文章: Ubuntu上开启SSH服务.
- 值得注意的是,如果 有开启防火墙 的话,需要进行 sudo ufw allow 22 命令行操作允许 SSH 数据包通过防火墙。
修改用户登录地址范围
详细操作可见CSDN文章: Ubuntu下安装mysql服务并设置远程访问,允许指定ip或所有ip访问.
比较有意思的是,由于我们采用的是 SSH 的连接方式,故该文章中的第2大步,即注释 bind-address = 127.0.0.1 操作可以忽略(具体原因我也不清楚,我能用 SSH 来进行大部分正常的系统远程管理就已经让我很惊奇了)。
配置 MySQL Workbench
上述的操作已经允许我们使用 SSH 了,打开 MySQL Workbench 的新建连接:
根据图解的第一与第二序列,选择 Stendard TCP/IP over SSH 连接方法(也许我应该称之为协议?)
选择完协议,我们将逐一填入信息
序列号 | 名称 | 细节 | 备注 |
---|---|---|---|
1 | 连接名称 | 填入的每种连接的名称 | |
2 | 连接协议选择 | ||
3 | SSH连接地址 | 一般来说是公网地址 | 如 123.123.123.123:22 ,冒号后为 SSH 的端口号,如何查询公网地址详见如何获取服务器中的公网地址 |
4 | SSH用户名 | 一般为系统的登录账号 | |
5 | SSH登录密码 | 一般为系统登录账号的密码 | |
6 | SSH登录密钥文件 | 设置的登录密钥文件 | 如果没设置登录密钥,可忽略该项 |
7 | 系统中MySQL的本地访问地址 | 因为使用的是SSH协议,所以只需要本地地址即可访问数据库 | 即便先前将 bind-address = 127.0.0.1 注释掉,也可使用本地地址 |
8 | 系统中MySQL的访问端口 | 标准的端口 | 默认未修改的话为3306 |
9 | MySQL数据库登录用户名 | 允许远程登录的账号 | 如何设置允许登录的账号详见修改用户登录地址范围 |
10 | MySQL数据库登录用户的密码 | 正常的密码 | 如果此处出问题一般是数据库密码出问题,需百度MySQL的密码问题 |
11 | 连接测试 | 测试是否能与目标主机进行远程连接的选项 | 一般只设置SSH的地址、端口、SSH 账号和 SSH 密码的话是不会弹出任何东西,只有将 MySQL 的登录账号与密码都设置上才会弹出连接成功,否则均会在软件无响应半分钟后弹出连接失败 |
当我们全部设置正常后,可以点击 Test Connection 测试连通性,如果一切顺利,连接 successfull ,则最后点击OK即可
当成功导入连接选项后,主界面将会成功添加一份连接选项,双击它即可进行连接。
剩下的操作就不在本次教程的范围之内了。
如何获取服务器中的公网地址
-
事前声明
- 这里我将假设所有人都为腾讯云的轻量应用服务器,并且已经成功创建了一个实例,其他 ISP 将不做过多的讨论,因为妾身只有腾讯云的服务器啊)
在腾讯云主界面里,点击控制台
在搜索栏中搜索轻量应用服务器
之后序号指着的,即使实例的公网地址