在 Linux 下忘記 mysql root 密碼的解決方法

跳過 mysql 服務的認證受權

不管 5.6 仍是 5.7 都須要這一步mysql

# 使用 service 中止服務
service mysql stop

# 或者 systemctl 中止服務
systemctl stop mysqld.service

# 命令行啓動 mysql 跳過認證受權
mysqld_safe --skip-grant-tables &

# 客戶端鏈接 mysql 服務
mysql -u root -p

Mysql5.7 找回 root 密碼

注意sql

  • 新版的 mysql 數據庫的 user 表中沒有 Password 字段
  • 將加密後的用戶密碼存儲於 authentication_string 字段

修改密碼

mysql> update mysql.user set authentication_string=password('123') where user='root' and Host = 'localhost';
mysql> flush privileges;
mysql> quit

重啓 mysql 服務

# 使用 service 重啓服務
service mysql restart

# 或者使用 systemctl 重啓服務
systemctl start mysqld.service

鏈接 mysql,alter user,完成找回密碼

mysql> alter user 'root'@'localhost' identified by '123';

Mysql5.6 找回 root 密碼

修改密碼方法一

mysql> use mysql;
mysql> set password for 'root'@'localhost'=password('123');
mysql> flush privileges;
mysql> quit

修改密碼方法二

mysql> use mysql;
mysql> update user set password=PASSWORD("123456") where user="root";
mysql> flush privileges;
mysql> quit

重啓 mysql 服務,完成密碼找回

# 使用 service 重啓服務
service mysql restart

# 或者使用 systemctl 重啓服務
systemctl start mysqld.service
相關文章
相關標籤/搜索