网站建设知识
Navicat连接远程服务器mysql数据库的问题
2025-07-22 11:14  点击:1

Navicat连接远程服务器mysql数据库的问题。今天在本地虚拟机自写项目时,发现一个问题,我在虚拟机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 选项,否则无法填写信息

这里的ip地址是 eth1 的ip地址。账号和密码是 服务器的账号和密码,填写完之后不要点击ok或连接,因为这时只是通过ssh连接到服务器的设置 b) 填写好 ssh 的信息之后,在选中 General 选项卡,这时我们就可以填写连接服务器上mysql的信息了,
Connection Name 这个地方是本地方便辨别的,不写也可以, 注意了,ip 地址这一栏就应该填写我们刚才写进my.cnf 里bind-address的那个IP地址,也是就我们刚才看到的 eth0这个网卡的ip 下面的就是服务器端 mysql 的账号和密码了,填写完整之后就可以正常连接啦 #这样的好处在与多加了一层 SSH 协议的防护,让项目服务器的数据库更加安全。