1.问题描述
当我们用Navicat连接自己的远程数据库时,在IP地址与密码都输入正确的情况下,点击测试连接时有时会出现以下情况
导致连接失败,这就会困扰许多新手小伙伴,为什么我的IP与密码都输入正确却还是报错?下面就来分析一下问题原因与解决方法。
2.问题原因
上图的话翻译过来的意思是 “ 无法连接到“3*.*8.**.*** ”上的mysql服务器(10060“未知错误”)”。在我当初连接时,我的问题原因是防火墙没有关,这就导致我在本地连接远程数据库时被防火墙所阻挡,从而连接失败。
3.解决方法
方法一:在Xshell上关闭防火墙
步骤:
1.首先启动MySQL
systemctl start mysqld.service
2. 查看MySQL运行状态:
systemctl status mysqld.service
正常情况下如下图:
3. 进入数据库:
mysql -uroot -p
回车后会提示输入密码,注意输入的密码默认是不显示的
4.查看防火墙端口开放的情况:
service firewalld status;
5.关闭防火墙:
systemctl stop firewalld
6.刷新:
flush privileges;
7.退出:
exit
一般情况下,此时在Navicat上再次连接,应该是可以连接上的。
方法二:在远程服务器上直接添加防火墙(这里以腾讯云服务器为例)
步骤:
1.登录后,在“更多”选项中点击“管理”
2.进入管理页面后点击防火墙
3.进入防火墙页面后,点击“添加规则”
4.在添加规则中,应用类型选择“ MySQL(3306)”,策略选择允许,然后点击确定
之后,在Navicat上再次连接远程数据库,应该可以连接成功
注意:
(1)个人建议选择解决方法二,方法一较为复杂,极容易又出现一些新手看不懂并且不知如何解决的问题,方法二操作简单,成功率更高。
(2)出现2003错误的原因可能有许多,这里只是解决了其中的某一个问题,实际操作时,应该具体问题具体分析,如果无法解决,可以看看其他大佬的文章