使用Mysql时遇到的各种坑!

  • Post author:
  • Post category:mysql


我使用的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

更详细的操作可以看上面链接中的博主的文章。



版权声明:本文为weixin_44154096原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。