一、问题
服务器访问MySQL原先是服务器开放4406端口,root账号权限对任意ip都能进行使用,存在安全隐患。禁止4406端口的话,对数据库数据操作很不方便,只能通过命令行敲SQL语句进行增删,对数据的查询也不方便。
二、解决方案
1、方案一:
如果有公网ip,直接在服务器数据库中配置root账号只能由公网ip地址进行访问。
2、方案二:
假设数据库服务器是服务器A,采用一台具有公网ip的另外一台服务器B作为跳板机,在A服务器里面配置远程访问权限只有B服务器ip可以访问A服务器,在本地需要连接到A服务器数据库的时候,借助B服务器建立ssh隧道即可访问。
三、配置过程
1、更改root账号对应的host地址
使用以下SQL语句
use mysql;
select host,user from user;
可以看到原先的root账号能被所有host访问,下面进行修改。
假定跳板机B服务器的ip是100.92.229.83
update user set host=' 100.92.229.83' where user='root';
flush privileges;
再查询一次
已经得到修改
2、本地DBeaver连接到A服务器数据库
假定A服务器的ip是100.95.5.79
经过上述更改后,已经无法连接上数据库
选中某个连接的数据库,右键编辑连接,进入SSH,在下面输入跳板机B服务器的ip和服务器ssh密码
回到首页点测试连接
借助跳板机B进行ssh隧道连接已经能成功连接上。