注:可视化工具 Navicat 15 for MySQL
当我们某天忘记我们的root用户密码,登录不到数据库时,只需要修改root用户的密码即可。
1.首先看一下报错信息1045
2.看到这个问题,我们可以找到我们MySQL安装路径下的my.ini文件,使用记事本或者edit打开它。
如果不能打开放到桌面进行打开修改。
3.找到[mysqld] 一般在第一行,在它的下面加上skip-grant-tables
加上之后的样子
那么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)
(1)在命令行中输入 mysql -u root -p,这个命令是连接数据库服务器的命令;遇到Enter passward:直接回车;
显示这个样子就是成功进入数据库了
(2)接着在下方执行操作:use mysql; 这是选择我们的数据库
(3)修改数据库用户root密码:update user set password=password(“123456”) where user=“root”;
需要注意的是:我的MySql版本是8.0.31的相对于5.7版本 在执行上述的修改语句是有语法错误的。
所以我这里使用:ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘password’; 来修改密码的。
看到这个结果说明我们已经修改成功了
(4)刷新数据库 flush privileges; 这样就OK了
最后,人的惰性是非常可怕的,距离上次写博客快半年了,希望大家也有养成好习惯!
{{item.user_info.nickname ? item.user_info.nickname : item.user_name}}
作者 管理员 企业
{{itemf.name}}
{{itemc.user_info.nickname}}
{{itemc.user_name}}
回复 {{itemc.comment_user_info.nickname}}
{{itemf.name}}