當你忘記了 MySQL 數據庫中 root 用戶的密碼,或需要重新設置密碼時,可以通過跳過認證機制的方式來重置密碼。本文將介紹如何在跳過認證的情況下重置 root 密碼,并確保本地和遠程登錄的安全性。
1. 跳過認證機制啟動 MySQL
首先,通過跳過 MySQL 的認證機制啟動數據庫,這樣你可以無需密碼直接登錄并修改 root 用戶的密碼。
步驟:
1. 停止 MySQL 服務:
在執行此操作之前,需要先停止 MySQL 服務。
sudo systemctl stop mysql
2. 以 --skip-grant-tables 模式啟動 MySQL:
這將使 MySQL 以跳過權限表的模式啟動,從而允許你無需密碼登錄。
sudo mysqld_safe --skip-grant-tables &
也可以在mysql的配置文件里加入skip-grant-tables
3. 登錄 MySQL:
此時你可以無需密碼直接登錄 root 用戶。
mysql -u root
2. 修改 root 用戶密碼
在成功登錄 MySQL 之后,你可以通過以下步驟來重置 root 用戶的密碼。
修改本地登錄密碼
首先,修改用于本地登錄的 root 用戶密碼。
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密碼';
修改遠程登錄密碼
然后,修改允許遠程登錄的 root 用戶密碼。
ALTER USER 'root'@'%' IDENTIFIED BY '新密碼';
3. 恢復正常的 MySQL 運行模式
完成密碼修改后,你需要重新啟動 MySQL,并取消跳過權限表的模式。
// 退出 MySQL
exit; 或 quit;
// 停止 MySQL 服務:
sudo systemctl stop mysql
// 重新啟動 MySQL:
sudo systemctl start mysql
// 刷新權限(可選)
FLUSH PRIVILEGES;
結束