问题描述
MySQL在windows的命令行中可以正常地连接,运行;但是在Navicat连接却一直报错。
具体错误
连接上来就会报错:
第一个错误
2000 (HY000): Unknown MySQL error
在网上看了解决办法说明摘抄如下:
一口老血喷出来,事情是这样的 ,我安装好了数据库,启动也成功了。但是在Navicat上就是连接不上,一开始是 连接拒绝,后来是2000 (HY000): Unknown MySQL error。查了半天没发现问题在哪里。后来无奈搬出来梯子去谷歌,然后发现可能是SSL的问题,于是把 Use SSL 勾选了就好了。
小白不知道什么原理。这里记录下防止后面踩坑。
链接: https://blog.csdn.net/csdnms1994/article/details/104782650/
希望你们到这里就可以解决问题了,然而我连接后接着抛出如下图的问题。
第二个错误
2003-Can’t connect to MySql server on ‘localhost’(10061)
于是乎我接着百度
百度给出的答案基本是针对于在命令行中没有成功连接上MySQL,所以提供的解决办法都是让你去查看mysqld有没有启动运行,又或者在命令行中去启动mysql。
这里我也贴出来他人的解决思路:
- 检查mysql是否启动
检查安装mysql的目录下是否有mysqld.exe,如果没有,就是没有mysql服务,进入官网链接https://dev.mysql.com/downloads/mysql/下载适合自己电脑的32位或64位,下载后直接启动。
- 检查cmd是否是以管理员权限执行
- 在cmd中启动mysql
后续几种就不赘述,想看下面有链接:
https://blog.csdn.net/juliarjuliar/article/details/82146535
还有一种思路是修改my.ini的配置文件(https://blog.csdn.net/u010700335/article/details/45765749)
第一步:排查问题,首先在cmd下,用命令可以连上,用程序连接mysql也可以连上,只是连接某些表的时候,报莫名其妙的错误提示(下面,会说明cmd连接mysql过程的)
cmd下连接mysql
在cmd下进入到mysql的bin目录下,然后输入:mysql -u root -p,紧接着在出现的enter password:输入password,及进入到mysql数据库中。mysql>show databases;会列出所有的数据库。此时表名已经连接上mysql数据库,后续步骤不再再赘述。
第二步:既然这样,是不是navicat 本身的问题,首先检查链接的IP 和 端口号,以及账号和密码;最后又把navicat卸载重新安装了仍然无济于事
navicat连接mysql
在navicat中选择Connection的MySQL,紧接着出现一个New Connection对话框,在Connection Name中随便输入一个连接名,如:test,Host Name/IP Address中输入localhost或者127.0.0.1(数据库装在本机),port是默认的3306,User Name也是系统默认的root,Password输入安装MySQL时设置的密码,然后点下面的Test Connection,结果就出现2003-can’t connect to mysql server on localhost(10061)。我用的是mysql5.5.版本,它也自带了一个GUI数据库工具mysql workbench,用此工具连也出现如上错误。用sqlyog也一样出现错误。
第三步:找白老师和谷老师:
1)首先我再把自己的问题描述一下:之前好好的,突然的navicat工具连接mysql出现2003——can’t connect to mysql server on localhost(10061)
cmd能够链接上,程序可以链接上(这说明账号密码以及端口号没有任何问题,服务当然也是开启的)
(抱怨)百度Google一大堆结果里面,怎么会有你的问题的结果呢?
2)先说正确的结果,这是费了老半天的查找,最后从一个论坛里面得到的正确结果,百度和Google都干嘛吃去了?---- 仅仅是抱怨,因为毕竟是搜索引擎嘛!!!
正解:我也遇到相同的问题,好不容易在网上找到解决方法,楼主试一下这个方法:
修改my.ini文件,把
改成
如果没有的话就加上去(我就是这种情况,然后navicat终于可以连上了!)(问题解决)
然而通过上面提供的解决思路我终究还是没有解决问题,差点我就卸载MySQL重新安装了,但是……
峰回路转,柳暗花明。
最后
我的解决方法
我在my.ini配置文件中加入下面的配置
紧接着我在cmd中就是可以不用密码直接登录了:
然后我再通过Navicat链接mysql就可以了,测试链接的图贴在下面。
这里我也并没有出现上面的第一种错误,不需要勾选使用SSL。
但是总觉得数据库不要密码似乎以后使用不安全,如是乎我有去百度了添加更改密码的方式。按照网上的格式:
更改密码会提醒我:
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
但是我在命令行中执行
命令后就可以更改密码了
然后再次在Navicat中链接即可,到这里问题算是解决了。具体错误的原因我没有弄Navicat Premium 12.1.31激活明白,但是猜测是一开始在安装mysql时修改密码的方式应该出现了问题,应该是中间有什么原因使得我的root的用户存在问题,最后导致我没有办法登录上去。