为了安全,mysql的root用户只本机登录,不对外网进行授权访问,此时可通过SSH隧道连接mysql数据库。以下为配置Mysql SSH隧道连接的基本步骤。

删除远程登录

登录mysql:

 mysql -uroot -p

查看用户开放的访问权限:

select user, host from mysql.user;

删除不需要的访问权限,比如:

delete from mysql.user where user='root' and host='%';

flush privileges;

再次查询,核实是否删除成功。

建立隧道

服务器的登录可通过用户名密码和RSA秘钥两种方式,建议使用RAS秘钥形式,将本机的id_rsa.pub内容放置于服务器的~/.ssh/authorized_keys中,具体怎么生成RSA秘钥,不在这里赘述。

单独开一个窗口,修改以下命令对应的ip和端口并执行:

ssh -NCPf root@192.168.11.1 -L 3388:127.0.0.1:3306

参数解释:

  • C 使用压缩功能,是可选的,加快速度。
  • P 用一个非特权端口进行出去的连接。
  • f SSH完成认证并建立port forwarding后转入后台运行。
  • N 不执行远程命令。该参数在只打开转发端口时很有用(V2版本SSH支持)

root@192.168.11.1是登陆mysql服务器的SSH用户名和IP地址。-L 3388:127.0.0.1:3306表示在本机开放3388端口到mysql服务器的127.0.0.1:3306端口的映射。其中127.0.0.1也可以是mysql所在服务器的内网ip或外网ip。

然后,通过mysql工具,输入对应的用户名密码,即可登录。注意登录时,选择的host地址为localhost或127.0.0.1。同时,在mysql数据库中开放对应ip的访问权限。



Mysql SSH隧道连接使用方法插图

关注公众号:程序新视界,一个让你软实力、硬技术同步提升的平台

除非注明,否则均为程序新视界原创文章,转载必须以链接形式标明本文链接

本文链接:http://choupangxia.com/2019/11/09/mysql-ssh/