mysql5.7重置密码

1.在[mysqld]中添加skip-grant-tables

vi /etc/my.cnf

skip-grant-tables ##忽略mysql权限问题,直接登录

例如:


[mysqld]

skip-grant-tables

datadir=/var/lib/MySQL

socket=/var/lib/mysql/mysql.sock

3.重启mysql


service mysql restart

4.用户无密码登录

mysql -uroot -p (直接点击回车,密码为空)

5.选择数据库


use mysql;

6.修改root密码


update user set authentication_string=password('123456') where user='root';

7.执行


flush privileges;

8.退出


exit;

9.删除


skip-grant-tables

10.重启mysql


service mysql restart 或 service mysqld restart

其它版本

1.修改MySQL的登录设置:

vim /etc/my.cnf

在[mysqld]的段中加上一句:skip-grant-tables

例如:


[mysqld]

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

skip-grant-tables

保存并且退出vi。

2.重新启动mysqld


# service mysqld restart

Stopping MySQL: [ OK ]

Starting MySQL: [ OK ]

3.登录并修改MySQL的root密码


# mysql

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 3 to server version: 3.23.56

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> USE mysql ;

Database changed

mysql> UPDATE user SET Password = password ('new-password') WHERE User = 'root' ;

Query OK, 0 rows affected (0.00 sec)

Rows matched: 2 Changed: 0 Warnings: 0

mysql> flush privileges ;

Query OK, 0 rows affected (0.01 sec)

mysql> quit

4.将MySQL的登录设置修改回来

vim /etc/my.cnf

将刚才在[mysqld]的段中加上的skip-grant-tables删除

保存并且退出vim

5.重新启动mysqld


# service mysqld restart

Stopping MySQL: [ OK ]

Starting MySQL: [ OK ]

你可能感兴趣的:(mysql5.7重置密码)