MySQL 5.7 忘记root密码,使用--skip-grant-tables重置root密码的通用方法

这里主要介绍在不知MySQL的root密码的情况下,使用--skip-grant-tables关闭MySQL服务器的认证,从而可以重置root的密码。MySQL版本为5.7。

1、关闭MySQL

sudo service mysqld stop

2、使用--skip-grant-tables 和 --skip-networking 重启MySQL

sudo mysqld --skip-grant-tables  --skip-networking &

--skip-grant-tables:此选项会让MySQL服务器跳过验证步骤,允许所有用户以匿名的方式,无需做密码验证直接登陆MySQL服务器,并且拥有所有的操作权限。

--skip-networking:此选项会关门MySQL服务器的远程连接。这是因为以--skip-grant-tables方式启动MySQL服务器会有很大的安全隐患,为了降低风险,需要禁止远程客户端的连接。

3、本地连接mysql

shell> mysql

--skip-grant-tables已经关闭MySQL服务器的认证,以匿名方式,无需密码即可连接。

4、重置密码

在重置密码前,先要重载授权表:

mysql> FLUSH PRIVILEGES;

MySQL 5.7.6+:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';

MySQL 5.7.6以及之后的版本,使用ALTER USER语法来修改密码。

MySQL 5.7.5以及之前的版本

mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');

MySQL 5.7.5以及之前的版本使用SET PASSWORD语法修改密码。

如果上面的方法修改密码有错,可以直接修改mysql.user表:

UPDATE mysql.user SET authentication_string = PASSWORD('MyNewPass')
WHERE User = 'root' AND Host = 'localhost';
FLUSH PRIVILEGES;

注意:mysql5.7 user表里已经去掉了password字段,改为了authentication_string。

5、重启服务器

service mysqld restart

因为之前使用--skip-grant-tables启动,所以需要重启mysql服务器,去掉--skip-grant-tables。

参考:https://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html

版权声明:著作权归作者所有。

相关推荐

忘记PostgreSQL的安装密码重置密码

忘记PostgreSQL的安装密码,需要使用无密码的方式登陆,这样需要重启postgresql。1、备份配置文件pg_hba.conf我们需要对pg-hba.conf修改,在改动前最好先备份它。它一般在/etc/postgresql-9.1/pg_hba.conf。cd /etc/postgresql-9.3/ cp pg_hba.conf pg_hba.conf-b

MySQL 5.7推荐使用ALTER USER修改密码

MySQL修改用户的密码主要有两种方法:ALTER USER 和SET PASSWORDALTER USER 基本使用ALTER USER testuser IDENTIFIED BY '123456'; 修改当前登录用户ALTER USER USER() IDENTI

MySQL 5.7账号锁定Account Lock

MySQL 5.7.8新增了Account Lock用于锁定账号。Account Lock可以在创建账号锁定,也可以使用ALTER USER语句进行锁定。创建账号时锁定mysql> CREATE USER 'demo'@'localhost' IDENTIFIED BY 'a123456'&n

MySQL 5.7设置用户密码过期

数据库mysql的user表里有三个字段用于控制用户密码过期的设置:`password_expired` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N', `password_last_changed` timestamp NULL&nbs

Ubuntu安装MySQL去掉密码输入提示

在Ubuntu安装MySQL时,在终端会提示输入root密码。以下介绍如何去掉密码输入提示,静默安装的方式.方法一sudo debconf-set-selections <<< 'mysql-server mysql-server/root_password password ${your_password}' sudo

SSH 禁止特定用户使用密码登录

SSH禁止特定用户使用密码登录可以在/etc/ssh/sshd_config添加Match配置过滤指定的用户。按用户过滤Match User user1,user2,user3,user4     PasswordAuthentication no 按组过滤Match Group group1  &