目录

解决常见的数据库1045密码错误问题

目录

解决常见的数据库1045密码错误问题

注:可视化工具 Navicat 15 for MySQL

当我们某天忘记我们的root用户密码,登录不到数据库时,只需要修改root用户的密码即可。

1.首先看一下报错信息1045

https://i-blog.csdnimg.cn/blog_migrate/b98b66611d04afbe98e09ade25ac3f52.png#pic_center

2.看到这个问题,我们可以找到我们MySQL安装路径下的my.ini文件,使用记事本或者edit打开它。

如果不能打开放到桌面进行打开修改。

3.找到**[mysqld]** 一般在第一行,在它的下面加上 skip-grant-tables

https://i-blog.csdnimg.cn/blog_migrate/8cfb2278f0137db33949cf3db5abcf9a.png#pic_center

加上之后的样子

https://i-blog.csdnimg.cn/blog_migrate/69d925a553fb4c3c44dced20a16a41ac.png#pic_center

那么 skip-grant-tables 是用来干什么的呢?

skip-grant-tables作为启动参数的作用:MYSQL服务器不加载权限判断,任何用户都能访问数据库。

** 注意: **但是加上它会降低我们数据库的安全性,可以在解决问题之后删除掉它。

如果没有my.ini文件,可以在桌面新建my.ini配置文件 ,其配置内容如下

** 注意: **要修改成你自己存放的mysql路径。

[mysqld]
skip-grant-tables
#datadir=C:\Program Files\mysql-8.0.31-winx64
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=C:\Program Files\mysql-8.0.31-winx64
# 设置mysql数据库的数据的存放目录
datadir=C:\Program Files\mysql-8.0.31-winx64\\Data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数
max_connect_errors=10
# 服务端使用的字符集默认为utf8mb4
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用mysql_native_password插件认证
#mysql_native_password
default_authentication_plugin=mysql_native_password
federated
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
# 设置时区(mysqld下)
default-time_zone='+08:00'
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8mb4

4.使用管理员身份打开命令行(cmd)

https://i-blog.csdnimg.cn/blog_migrate/1b060872ef15843e845e941f150ab21c.png#pic_center

(1)在命令行中输入 mysql -u root -p ,这个命令是连接数据库服务器的命令;遇到Enter passward:直接回车;

https://i-blog.csdnimg.cn/blog_migrate/8643e9a60b837bc8030c3147c36200aa.png#pic_center

显示这个样子就是成功进入数据库了

(2)接着在下方执行操作: use mysql; 这是选择我们的数据库

https://i-blog.csdnimg.cn/blog_migrate/31bac99698c643da02c5a83eb6de52b7.png#pic_center

(3)修改数据库用户root密码:update user set password=password(“123456”) where user=“root”;

https://i-blog.csdnimg.cn/blog_migrate/8e346fb37bd00ecce00ae7e2bf2a38b0.png#pic_center

需要注意的是:我的MySql版本是8.0.31的相对于5.7版本 在执行上述的修改语句是有语法错误的。

所以我这里使用: ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘password’; 来修改密码的。

https://i-blog.csdnimg.cn/blog_migrate/624fa1855b3f5615119b9714ee1ac88b.png#pic_center

看到这个结果说明我们已经修改成功了

(4)刷新数据库 flush privileges; 这样就OK了

最后,人的惰性是非常可怕的,距离上次写博客快半年了,希望大家也有养成好习惯!