文章目录
- 一、忘记数据库密码该如何修改
- 1. 关闭数据库的服务
- 2.跳过安全检查
- 3. 重置密码
- 4.查询用户是否存在
- 5.退出验证密码是否正确
- 二、未忘记密码该如何修改密码
- 1.直接修改密码
- 2.登录mysql
时间久了,忘记数据库密码了。。。。。
一、忘记数据库密码该如何修改
1. 关闭数据库的服务
# 基于windows环境
net stop mysql
#基于linux环境
service mysql stop
#注意:服务名称是否mysql,如果有修改过,请使用修改过的服务名称。
#比如:我的windows,安装了两个版本的mysql
#需要使用 net stop MySQLServer-V5.7.20
2.跳过安全检查
使用命令,跳过安全检查,以便使用root无密码登录mysql
#1.切换到安装目录bin下
cd F:\mysql\install_file\bin\
#2.跳过安全检查
.\mysqld.exe --defaults-file=F:\mysql\data\my.ini --skip-grant-tables
注意:执行该命令后,不需要终结该命令的执行,即不要关闭该窗口
3. 重置密码
在另一个窗口进行密码的重置
#无密码,登录root用户
mysql -u -root
执行SQL,修改密码
USE mysql;
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
如果成功,即修改密码完成。
如果出现一下错误:
代表密码修改失败
4.查询用户是否存在
如果用户不存在,则需要创建该用户,如果用户存在,则更换修改密码的SQL,重新修改
SELECT User, Host, authentication_string, plugin FROM mysql.user WHERE User = 'root';
更换修改密码的SQL
#如果存在root用户,则使用修改用户命令。注意:host是localhost,还是%,或者是其他
UPDATE mysql.user SET authentication_string=PASSWORD('新密码') WHERE User='root' AND Host='%';
FLUSH PRIVILEGES;
#如果不存在root用户
CREATE USER 'root'@'%' IDENTIFIED BY '新密码';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
注意1:先查询一下root用户,如果你的root用户host是 %,你修改的则是 'root'@'%' 或者是 host='%'
注意2:别忘了刷新权限
5.退出验证密码是否正确
- 退出mysql,关闭之前跳过安全检验的窗口。
- 启动mysql。
- 使用链接工具mysql,使用新密码登录
二、未忘记密码该如何修改密码
1.直接修改密码
#安装目录/bin下执行
.\mysqladmin.exe -uroot -p旧密码 password '你的新密码'
2.登录mysql
#1.先登录mysql
mysql -uroot -p密码
#2.使用命令修改密码
USE mysql;
-- 方法1:使用 UPDATE 修改密码(适用于老版本)
UPDATE user SET authentication_string = PASSWORD('你的新密码') WHERE User = 'root' AND Host = 'localhost';
FLUSH PRIVILEGES;
-- 方法2:使用 ALTER USER(推荐用于 MySQL 5.7.6+)
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';
FLUSH PRIVILEGES;