昨天安装了最新版的mysql navicat premium, 但没来得及测试使用Navicat连接。
今天上班时,使用Navicat premium连接mysql时,出现报错ERROR 2003 (HY000): Can’t connect to MySQL server on ‘1XX.XX.XX.XX’ (10061).
起初以为是mysql没有安装成功,就先去检测服务器中是否成功安装mysql.
使用如下命令:
先进入mysql的安装目录
执行mysql -u root -p
输入登录密码
执行show databases;(一定要输入;)
从上面结果得出,mysql已经成功安装了。
接下来百度了一堆关于ERROR 2003 (HY000): Can’t connect to MySQL server on ‘1XX.XX.XX.XX’ (10061)的资料,综合起来有三种:
1. mysql服务没有启动
在服务中可以查看mysql有没有启动。我的mysql已经启动了,所以排除该原因。
2. 服务器防火墙屏蔽了3306端口
百度怎么查看服务器防火墙是否屏蔽3306端口,3306端口没有被屏蔽。
3. my.ini配置文件中bind-address = 127.0.0.1的问题
我将bind-address = 127.0.0.1修改为bind-address = 0.0.0.0后,发现依旧报10061错误。然后我又将bind-address = 0.0.0.0屏蔽掉,还是报10061错误。查了一大堆资料,翻来覆去就这三种解决方法,我已经修改了,为什么不起作用。直到我再次重启了mysql服务器,再连接,终于不报10061错了。oh, my god! 各位兄弟姐妹,修改bind-address后,多写一句重启mysql服务,是会怎样啊。好了,10061问题到这里就解决了。
但是,10061错误不出现了,出现了1130错误ERROR 1130: Host 'xxx.xxx.xxx.xx' is not allowed to connect to this MySQL server
行吧,谁让我要用Navicat连接mysql呢,还能咋整,继续修改呗。
又是百度一堆资料,然后尝试了一堆解决方法,终于知道了原因:只是本机访问mysql,其他的任何机器都是无法访问的。需要设置允许远程机器访问。
数据库服务器中的mysql数据库中的user的表中没有权限(root也没有权限)。
1)先在mysql服务器上登录root, 然后切换到mysql数据库
2)执行
update user set host ='%' where user='root';
flush privileges;
3)重启mysql服务,重启mysql服务,重启myssql服务,重要的事,说三遍。
最后使用Navicat连接,显示连接成功!
终于解决了。。。。。。