Navicat连接MySQL数据库的一些问题与解决方案
前言
安装MySQL数据库与Navicat并不算难事,关键是怎么让他们工作花费了我整整一天的时间,最终才把弄好。遇到各种各样的问题,上网看了大量博客,发现很多博客都是直接copy或者并不能非常好的解答自己遇到的问题。这里记录一下自己遇到的问题和解救方案。
关于软件
Navicat和MySQL直接在官网上下载即可,安装也是非常的方便。Navicat是收费软件,如果觉得自己比较富裕的话可以购买,如果想破解的话,网上也有非常多的教程(P.S:这里不建议下载“绿色版”或者“完美破解版”,很有可能是流氓软件或者是不完整功能,现在下载觉得可以使用,后续开发的时候就会遇到各种bug,所以推荐下载官方正版,然后破解。PP.S:在这里不给出破解的方法是因为,破解工具在后期可能就会因为产品的升级发生改变,导致不能皮杰,所以这里不给出破解教程。)
遇到的问题
这里只说一下自己遇到的问题和解决方法(不知道是不是版本问题,反正网上能搜到的解决办法我实际上都试了一遍........)
关于无法启动MySQL
1067:你的MySQL服务没有打开,进入任务管理器->服务,在目录下查看MySQL服务是否已经开启;如果是MySQL Developer版本的话,应该会有MySQL与MySQL80这两个服务,只要MySQL80是开启的就代表你服务开启成功了。
2018-05-18_10-11-13.png3534:这个应该是最常见的错误。可能的原因是实际上你的mysqld进程或者其他进程占用了端口3306,将进程kill一下就可以了,当然这种情况出现的原因比较低。最普遍的可以尝试下面的方法:
将C:\Program Files\MySQL\MySQL Server 8.0\bin
加入到环境变量path中,这里的路径可能和我不一样,填写你们自己的路径;
进入C:\Program Files\MySQL\MySQL Server 8.0
,首先看是否有data文件夹
1.如果没有data文件夹就进入C:\Program Files\MySQL\MySQL Server 8.0\bin
目录下,shift加鼠标右击,点击进入命令窗口(cmd窗口),输入下列命令:
mysqld --install
mysqld --initialize
net start mysql
2.如果有data文件夹,先将data文件夹下所有的文件清空或者移走,然后进入C:\Program Files\MySQL\MySQL Server 8.0\bin
执行:
mysqld -remove
mysqld --install
mysqld --initialize
net start mysql
如果还是3534,重启电脑重新启动一下服务试试。因为出现3534总体来说就是端口被占用、服务没有成功开启、data文件夹出现了问题、未加入path这些原因造成的。
1405:这个是最让我头疼的问题,好不容易解决了服务开启问题,但是无法登陆。登陆的方式为在C:\Program Files\MySQL\MySQL Server 8.0\bin
CMD窗口下输入mysql -u root -p
然后输入密码登录即可,但是就是这里会出现1405的错误,有以下两个原因:
1.输对了密码,确保是正确的但却始终报错。这个很有可能是你配置Navicat出现的问题,更改了加密规则,所以进不了mysql命令窗口。这里我建议是重装一下mysql server,因为最为方便。
2.不记得密码了,加密方式没有更改。首先net stop mysql
停止mysql服务,然后找到my.ini文件打开进行修改(一般会在mysql安装目录下C:\Program Files\MySQL\MySQL Server 8.0',但也有可能是在
C:\ProgramData\MySQL\MySQL Server 8.0下,ProgramData需要打开“显示隐藏文件的功能”) 在my.ini中的[mysqld]下加上skip_grant_tables跳过权限检查,保存。 然后登陆
mysql -u root -p`,这时计时需要输入密码一个回车就可以正产登陆了,之后通过下列命令:
#将数据库切换至mysql库
mysql> USE mysql;
#修改密码
mysql> UPDATE user SET password=PASSWORD(‘newpasswd’)WHERE user=’root’;
#刷新MySQL权限相关的表
mysql> flush privileges;
mysql> exit;
修改密码成功后,将my.ini文件中加入的跳过权限语句删除或加#号注释。重启服务,使用修改后的密码登录即可。
关于Navicat
如果成功解决了破解问题,其实Navicat遇到的问题就非常的少,基本上只有2059错误。
2059:出现2059这个错误的原因是在mysql8之前的版本中加密规则为mysql_native_password,而在mysql8以后的加密规则为aching_sha2_password。我们可以将mysql用户登录的加密规则修改为mysql_native_password。
请确保能进入MySQL>这个输入命令的窗口,
第一条: ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
第二条: ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
#注意此处的password为你的登陆密码,本人的操作为:
第一条: ALTER USER 'root'@'localhost' IDENTIFIED BY '123****' PASSWORD EXPIRE NEVER;
第二条: ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123****';
关于删除mysql
如果发现自己实在不知道为什么会出错,各种方式都尝试了,那么很有可能你在尝试中更改了某些配置,所以可以重新安装mysql。除了利用安装程序进行卸载之外,还需要清除regedit注册表中的信息,可以参照这篇博客