[关闭]
@lgh-dev 2017-12-21T03:53:25.000000Z 字数 837 阅读 1116

mysql 强制重置mysql的密码

MySQL


MySQL创建新用户、新数据库、设定访问权限控制都需要用到root密码。万一把root密码忘了,该怎么办?
幸运的是重置密码很简单

安全模式重启法

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

首先我们要停掉mysql服务

sudo service mysql stop

以上命令适用于Ubuntu和Debian。CentOS、Fedora和RHEL下使用mysqld替换mysql。

以安全模式启动MySQL

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

注意我们加了--skip-networking,避免远程无密码登录 MySQL。

这样我们就可以直接用root账户登录,唔需要密码

mysql -u root

接着重新设置密码

  1. 操作库
  2. mysql> use mysql;
  3. mysql> update user set password=PASSWORD("mynewpassword") where User='root';
  4. or
  5. mysql>alter user 'root'@'localhost' identified by 'mynewpassword';
  6. or
  7. mysql>set password for 'root'@'localhost'=password('mynewpassword');
  8. mysql> flush privileges;

但是5.7的密码字段有所不同,是authentication_string
注意,命令后需要加分号。

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

  1. mysql>quit

重启服务器

  1. sudo service mysql start

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

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

  1. mysql -u root -pnewpassword

注意,-p 和密码间不能有空格。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注