Navicat 连接远程服务器 mysql 数据库 的问题

时间:2022-09-21 15:13:39
今天在本地虚拟机自写项目时,发现一个问题,我在虚拟机Debian系统下搭建的 lamp 环境,利用samba服务共享到win下,在win下的 navicat 连接数据库失败,找了一下原因,是有一个配置文件的一个配置项需要提前更改,才能达到远程访问,解决方法如下。
1:进入Debian系统,vim /etc/mysql/my.cnf  .这个是mysql的配置文件      到里面把  bind-address= 127.0.0.1 这一句注释 2:保存退出。重启 mysql,service mysql restart 即可连接成功,
值得注意的是
这种简单粗暴的解决方法只适合本地虚拟机或者测试地址使用,如果真正运行的服务器可以这样让别人远程用root连接数据库,那将会有灾难性的后果,所以在这里,介绍另一个相似但安全性更高的方法,只是这个方法不另做配置的话,虚拟机里面就起不到效果,这个也简单,只要给虚拟机设置添加一个网卡就好了
1:ifconfig 查看本机的IP地址,记住 eth0 和 eth1 这两个网卡的ip地址 2:vim /etc/mysql/my.cnf             还是找到 bind-address = 127.0.0.1  这一句,注意这里就不是注释了,而是将 127.0.0.1 替换成刚才 eth0 这个网卡的 ip 地址;           保存退出;           重启mysql; 3:这时,用上面的方法就连接不上了,我们需要通过ssh才能成功实现远程连接      a)     打开 Navicat ,选中 ssh,先勾选 use ssh tunnel 选项,否则无法填写信息                Navicat 连接远程服务器 mysql 数据库 的问题                这里的ip地址是 eth1 的ip地址。账号和密码是 服务器的账号和密码,填写完之后不要点击ok或连接,因为这时只是通过ssh连接到服务器的设置       b)     填写好 ssh 的信息之后,在选中 General 选项卡,这时我们就可以填写连接服务器上mysql的信息了,                Navicat 连接远程服务器 mysql 数据库 的问题           Connection Name 这个地方是本地方便辨别的,不写也可以,           注意了,ip 地址这一栏就应该填写我们刚才写进my.cnf 里bind-address的那个IP地址,也是就我们刚才看到的 eth0这个网卡的ip           下面的就是服务器端 mysql 的账号和密码了,填写完整之后就可以正常连接啦            #这样的好处在与多加了一层 SSH 协议的防护,让项目服务器的数据库更加安全。