zhaoyingjie

如何重设 MySQL 的 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  

 

 

 

其他方案

以上是通用方案,在Ubuntu和Debian系统上,有一个debian-sys-maint用户,Debian类系统下一些系统脚本对mysql的操作是通过这个用户完成的。所以我们可以通过这个用户来修改 root 密码。该用户的密码可以在/etc/mysql/debian.cnf下找到:

 

# Automatically generated for Debian scripts. DO NOT TOUCH!
[client]
host     = localhost  
user     = debian-sys-maint  
password = PASSWORD  
socket   = /var/run/mysqld/mysqld.sock  
[mysql_upgrade]
host     = localhost  
user     = debian-sys-maint  
password = PASSWORD  
socket   = /var/run/mysqld/mysqld.sock  
basedir  = /usr  

 

用该用户登录 MySQL 后,也可以修改密码(具体修改过程见上):

sudo mysql -u debian-sys-maint -p  

 

分类:

技术点:

相关文章:

  • 2021-10-26
  • 2021-10-07
  • 2021-11-03
  • 2022-12-23
  • 2021-11-22
  • 2021-12-06
  • 2021-12-16
  • 2022-01-15
猜你喜欢
  • 2021-11-16
  • 2021-12-04
  • 2021-09-24
  • 2022-12-23
  • 2021-11-22
  • 2021-10-20
  • 2022-12-23
相关资源
相似解决方案