MySQL忘記root用戶的密碼解決方法
MySQL版本: 5.7.26
Ubuntu版本:18.04.2 LTS
在Ubuntu上的MySQL如果忘記了root用戶密碼,有兩種解決方法:
方法一、跳過授權,免密登錄
- 關閉正在運行的MySQL服務
service mysql stop
- 打開終端,輸入
mysqld --skip-grant-tables
意思是啟動MySQL服務的時候跳過權限表認證。
- 再開一個終端,輸入mysql,然后回車,如果成功,將出現MySQL提示符 mysql>
- 開始修改root密碼
use mysql; # 進入名為mysql的數據庫 select User, Host, authentication_string from user; # 查看一下user表的內容 update user set authentication_string=password("你的新密碼") where User="root" and Host=’localhost’; # 注意MySQL5.7 代表密碼的字段名是authentication_string flush privileges; # 刷新權限,修改完成之后,需要使用該語句,重新加載權限表 exit;
service mysql restart # 重新啟動MySQL服務
接下來正常登錄即可
方法二、用另一個賬號登錄,之后再修改user表
- 進入 /etc/mysql/ 文件夾,查看debian.cnf文件,cat debian.cnf
- 開啟MySQL服務
- 以 用戶名:debian-sys-maint 密碼:P7D..... 連接mysql服務器
- 再開始修改root用戶的密碼
use mysql; # 進入名為mysql的數據庫 select User, Host, authentication_string from user; # 查看一下user表的內容 update user set authentication_string=password("你的新密碼") where User="root" and Host=’localhost’; # 注意MySQL5.7 代表密碼的字段名是authentication_string flush privileges; # 刷新權限,修改完成之后,需要使用該語句,重新加載權限表 exit;
接下來用新的root密碼正常登錄即可。