我使用的MySQL版本是8.0,对应下载了Navicat来操作数据库。
下面分享一些之前使用MySQL时遇到过的坑以及解决方案:
第一次出现问题是在我交一个网络爬虫的课设的前一天晚上,我的数据库突然就无法连接了,当时宿舍都已经断电了,第二天早上就要答辩,心态瞬间就崩了。
找到的第一个问题是我的Navicat使用期过了,都是笔记本自动更新的锅,花了一点时间重新搞了个破解版之后Navicat能用了。然后连接数据库,一直给我报无法连接。然后启动命令行进数据库,输入设置的密码后报了这个错:ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES),所以是密码自动被改了,反正密码怎么输都不对了。
密码错误一般有两个解决方案:
第一个简单粗暴,直接卸载数据库重装,但这样数据库里面的东西就没了。
第二个就是找博客找解决方案:网上有很多解决方案其实,我借鉴的是下面这篇。
参考博文:https://blog.csdn.net/qq_43342301/article/details/91288891
上面链接中博主讲的很详细,关于怎么在忘记数据库密码的情况下重置数据库密码,重置后其实之前的数据库也没了,但总比卸载重装好。
第二个问题是服务器无法启动的问题,大家遇到该问题的时候可以尝试用我下面说的方法解决:
先找到MySQL所在的文件夹目录,用管理员模式进入,创建一个start_mysql.bat和一个stop_mysql.bat的文件。其实名字可以随便命名,只要是.bat文件就行。
设置start_mysql.bat文件内容如下:
echo off
set path=%~dp0
echo install mysql service...
echo %path%
cd %path%\bin\
mysqld.exe --remove mysql
mysqld.exe --initialize //添加这一行
mysqld.exe --install mysql
echo start mysql Serviceo
"%SystemRoot%"\system32\net start mysql
设置stop_mysql.bat文件内容如下:
echo off
set path=%~dp0
echo remove mysql service...
echo stop mysql Service
cd %path%\bin\
"%SystemRoot%"\system32\net stop mysql
mysqld.exe --remove mysql
随后用管理员模式打开命令行,在MySQL的目录下启动start_mysql.bat就行了。
要注意的是,生成data目录后,记得先关闭mysqld.exe服务,然后删除掉start_mysql.bat脚本里添加的 mysqld.exe –initialize 这一行。以后使用start_mysql.bat不再需要初始化这一步骤。
关闭数据库的话只要启动stop_mysql.bat就行了。
参考博文:https://www.cnblogs.com/azbane/p/9814747.html
更详细的操作大家可以去看上面链接中博主的文章。
第三个问题是时区设置的问题,在连接数据库时经常会遇到时区报错的问题,导致无法连接数据库。ERROR:Server returns invalid timezone. Go to ‘Advanced’ tab and set ‘serverTimezone’ prope
解决方案:
1.进入命令窗口(Win+R),连接数据库 mysql -u root -p,输入密码后进入数据库。
2.输入
show variables like '%time_zone';
显示SYSTEM就是没有设置时区。
3.如果没有设置时区我们接下来输入
set global time_zone = '+8:00';
这时重新连接数据库就能成功了。
参考博文:https://blog.csdn.net/liuqiker/article/details/102455077
更详细的操作可以看上面链接中的博主的文章。