问题描述:
为了数据安全,一些服务器增加了安全协议(如SSH),外网不能直接访问服务器。
服务器支持SSH远程登录功能时,通过mysql的图形界面工具(MySQL workbench)访问服务器里的mysql数据库,
需要进行一些配置。
详细步骤如下:
1.在自己的电脑上(不是服务器)安装PuTTY。
2.打开PuTTY,如下图,默认是session页面,在session页面的Host Name中输入服务器的IP地址,
Connection type选择SSH(默认就是),然后点save按钮保存,下次打开PuTTY无需再输入IP。
3.切换到Connection-->Data选项卡,在Auto-login username 中输入服务器分配给你的登陆账号。
(注:官方的PuTTY无法在这里输入服务器分配的登陆密码,需要在连接服务器的过程中输入,详见第5步)
4.切换到Connection-->SSH-->Tunnels选项卡,如下图,在方框1处的source port中输入3307(这个端口可以自己定义,是自己电脑的端口,尽量不要用3306,因为自己本地的mysql端口是3306);在方框2处的Destination中输入服务器上mysql数据库的地址和端口(如mysql安装在服务器的本地,则地址为127.0.0.1,mysql通常的端口是3306,查看服务器mysql地址的方法详见下面的第7步);然后在方框3处点击Add按钮,会在方框4中自动添加如下信息。
这一步是将自己本地电脑mysql地址127.0.0.1:3307与远程服务器mysql地址127.0.0.1:3306建立映射,详细的关系请看最后备注。
5.最后点击上图的“Open”按钮,弹出如下界面,即连接到服务器端的操作界面了。
登陆服务器的用户名就是第3步输入的名字,在这里输入该账号对应的密码就好了。
登陆成功,即建立了自己电脑与远程服务器的连接tunnels。
6.打开mysql workbench,新建Connection,如下图,自己给连接取个名字;然后在1处Hostname输入127.0.0.1(因为在第4步的时候是将自己电脑本地与服务器建立的连接,其中“L3307”表示自己电脑本地地址,即127.0.0.1);在2处输入自己电脑开通的端口3307;在3、4处输入服务器中mysql分配给你的用户名和密码。注意4处输入密码时要先点击按钮“store in vault”才行。
最后,点击最下面的按钮“Test Connection”,显示连接成功。再点OK即可。
注意:在使用mysql workbench的时候,PuTTY不要关闭,否则连接就断开了。
7.下面介绍查找远程服务器上mysql地址的方法,在第5步完成后,PuTTY成功连上服务器,可在其中的命令行中按照
mysql -uusername -ppassword的格式输入(username、password是服务器分配的mysql账户和密码),即访问到mysql, 然后在命令行里输入"status",查看mysql的状态如下图,红色方框处connection对应的是localhost,即说明mysql在服务器上的地址是127.0.0.1
备注:个人理解的映射关系和请求数据库实现流程如下图