为了安全,mysql的root用户只本机登录,不对外网进行授权访问,此时可通过SSH隧道连接mysql数据库。以下为配置Mysql SSH隧道连接的基本步骤。
删除远程登录
登录mysql:
代码语言:javascript复制 mysql -uroot -p
查看用户开放的访问权限:
代码语言:javascript复制select user, host from mysql.user;
删除不需要的访问权限,比如:
代码语言:javascript复制delete from mysql.user where user='root' and host='%';
flush privileges;
再次查询,核实是否删除成功。
建立隧道
服务器的登录可通过用户名密码和RSA秘钥两种方式,建议使用RAS秘钥形式,将本机的id_rsa.pub内容放置于服务器的~/.ssh/authorized_keys中,具体怎么生成RSA秘钥,不在这里赘述。
单独开一个窗口,修改以下命令对应的ip和端口并执行:
代码语言:javascript复制ssh -NCPf root@192.168.99.52 -L 3388:127.0.0.1:3306
参数解释:
- C 使用压缩功能,是可选的,加快速度。
- P 用一个非特权端口进行出去的连接。
- f SSH完成认证并建立port forwarding后转入后台运行。
- N 不执行远程命令。该参数在只打开转发端口时很有用(V2版本SSH支持)
root@192.168.99.52是登陆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的访问权限。