昨天安装了最新版的mysql navicat premium, 但没来得及测试使用Navicat链接。mysql
今天上班时,使用Navicat premium链接mysql时,出现报错ERROR 2003 (HY000): Can’t connect to MySQL server on ‘1XX.XX.XX.XX’ (10061).sql
起初觉得是mysql没有安装成功,就先去检测服务器中是否成功安装mysql.数据库
使用以下命令:服务器
先进入mysql的安装目录测试
执行mysql -u root -pthis
输入登陆密码spa
执行show databases;(必定要输入;)server
从上面结果得出,mysql已经成功安装了。blog
接下来百度了一堆关于ERROR 2003 (HY000): Can’t connect to MySQL server on ‘1XX.XX.XX.XX’ (10061)的资料,综合起来有三种:ci
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链接,显示链接成功!
终于解决了。。。。。。