线上数据库设置了IP白名单,只能是正式服务器的IP才能连接上数据库。
Navicat也可以通过SSH,先连接上服务器,再通过服务器连接到数据库,实现查看数据库的内容
但是有时正式服代码测试时,每次都要上传到正式环境才能实现。
为了解决这个问题,要通过SSH实现实现本地代码连上限制内网访问的MySQL
在当前用户的根目录,找到.ssh目录
创建配置文件config,不要后缀名,配置好私钥
Host zhan
HostName zhan666.cn
User root
IdentityFile ~/.ssh/zhan33
Host zhan666
HostName www.zhan666.cn
User root
IdentityFile ~/.ssh/zhan66
执行指令
C:\Users\A>ssh -L 3307:127.0.0.1:3306 zhan
Last login: Mon Aug 17 16:00:19 2020 from 59.41.93.65
[root@VM_0_2_centos ~]#
或者
ssh -NC root@www.test.com -L 3307:127.0.0.1:3306 -i ./test.pem
表明已经连接上服务器了,并且把本地的3307端口映射成服务器上面的3306端口
此时,在本地配置文件
'type' => 'mysql',
// 服务器地址
'hostname' => '127.0.01', #这里填写内网IP
// 数据库名
'database' => "test",
// 用户名
'username' => 'root',
// 密码
'password' => '123456',
//端口
'hostport' => '3307', #映射的端口
这里实际上连接的数据库就是服务器上面的数据库了
关闭映射,登录后,进行logout
C:\Users\A>ssh -L 3307:127.0.0.1:3306 zhan666
Last login: Mon Aug 17 16:36:22 2020 from 59.41.93.65
[root@VM_0_2_centos ~]# logout
Connection to www.zhan666.cn closed.
关闭后,本地的代码,Navicat都不能通过3307端口登录上MySQL了
网友评论