如何重设 MySQL 的 root 密码

记得root密码的前提可以这样操作

方法1: 用SET PASSWORD命令 
首先登录MySQL

格式:mysql> set password for 用户名@localhost = password('新密码'); 
例子:mysql> set password for root@localhost = password('123');

 

方法2:用mysqladmin 

格式:mysqladmin -u用户名 -p旧密码 password 新密码 
例子:mysqladmin -uroot -p123456 password 123

 

方法3:用UPDATE直接编辑user表 
首先登录MySQL。 

mysql> use mysql; 
mysql> update user set password=password('123') where user='root' and host='localhost'; 
mysql> flush privileges;

 

以下是忘记root密码的时候

MySQL下创建新用户、新数据库、设定访问权限控制都需要用到root密码。万一把root密码忘了,该怎么办?

幸运地是,重设密码很容易。

安全模式重置法

基本的思路是,以安全模式启动mysql,这样不需要密码可以直接以root身份登录,然后重设密码。

首先,我们停掉MySQL服务:

sudo service mysql stop  

#mac停止的方法
mysql.server stop
mysql.server start
mysql.server restart

 

 修改用户密码 强力推荐

mysql> alter user 'root'@'localhost' identified by 'youpassword';   

 

 

以上命令适用于Ubuntu和Debian。CentOS、Fedora和RHEL下使用mysqld替换mysql。(标红适合mac)

 

以安全模式启动MySQL:

sudo mysqld_safe --skip-grant-tables --skip-networking &  

 

 

注意我们加了--skip-networking,避免远程无密码登录 MySQL。 (如果提示需要开启mysql则开启即可在mac上测试需要开启

这样我们就可以直接用root登录,无需密码:

 

mysql -u root  

 

接着重设密码:

mysql> use mysql;  
mysql> update user set password=PASSWORD("mynewpassword") where User='root';  
mysql> flush privileges;  

 

如果提示以下错误

MySQL5.7更改密码时出现ERROR 1054 (42S22): Unknown column 'password' in 'field list' 

新安装的MySQL5.7,登录时提示密码错误,安装的时候并没有更改密码,后来通过免密码登录的方式更改密码,
输入update mysql.user  set password=password('root') where user='root'时提示ERROR 1054 (42S22): Unknown column 'password' in 'field list',
原来是mysql数据库下已经没有password这个字段了,password字段改成了
authentication_string
 

 

所以更改语句替换为
update mysql.user set authentication_string=password('root') where user='root' ;即可

 

 

重设完毕后,我们退出,然后启动 MySQL 服务:

 

mysql > quit  

quit不需要分号。

重启服务:

sudo service mysql restart  

mac的重启方法
mysql.service restart

 

 

同样,以上命令适用于Ubuntu和Debian,Centos、Fedora和RHEL需要用mysqld替换mysql。

现在可以尝试用新密码登录了:

 

mysql -u root -p mynewpassword  

 

  

posted on   星河赵  阅读(334)  评论(0编辑  收藏  举报

编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
历史上的今天:
2017-01-09 Windows下 Pycharm连接Github 教程

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示