MySQL—修改 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 authentication_string=password('123') where user='root' and host='localhost'; 
mysql> flush privileges; 

二、忘记旧密码

windows 下:

1. 关闭正在运行的 MySQL 服务。

2. 打开 DOS 窗口,转到 mysql\bin 目录。

3. 输入 mysqld --skip-grant-tables 回车。--skip-grant-tables 的意思是启动 MySQL 服务的时候跳过权限表认证。

4. 再开一个 DOS 窗口(因为刚才那个 DOS 窗口已经不能动了),转到 mysql\bin 目录。

5. 输入 mysql 回车,如果成功,将出现 MySQL 提示符 >

6. 连接权限数据库: use mysql;

7. 改密码:

mysql>update user set authentication_string=password("123") where user="root"; 

8. 刷新权限(必须步骤):

mysql>flush privileges; 

9. 退出 quit。

10. 注销系统,再进入,使用用户名 root 和刚才设置的新密码 123 登录。

Ubuntu 下

1.停止 MySQL 服务

sudo service mysql stop

2.进入 MySQL 配置文件目录

cd /etc/mysql/mysql.conf.d 

3.编辑配置文件

sudo nano mysqld.cnf

[mysqld] 下面添加 skip-grant-tables(可以试试这个命令:mysqld --skip-grant-tables)

4.启动服务

sudo service mysql start

5.登录 MySQL

mysql -u root -p

执行以下命令

mysql>update mysql.user  set authentication_string=password('newpassword') where user='root';
mysql>update mysql.user set plugin="mysql_native_password"; 
mysql>flush privileges;
mysql>quit;

6.注解掉 skip-grant-tables

7.重启服务

sudo service mysql restart

CentOS 下:

1.修改 /etc/my.cnf ,最下面添加 skip-grant-tables=1

2.重启 mysql 服务

systemctl restart mysqld

3.登录 MySQL

mysql -u root -p

执行以下命令

mysql>update mysql.user  set authentication_string=password('newpassword') where user='root';
mysql>update mysql.user set plugin="mysql_native_password"; 
mysql>flush privileges;
mysql>quit;

4.注解掉 skip-grant-tables=1

5.重启服务

systemctl restart mysqld
  • MySQL

    MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是最流行的关系型数据库管理系统之一。

    518 引用 • 504 回帖 • 727 关注
回帖
请输入回帖内容...