在Ubuntu下使用命令安裝Mysql時會直接安裝好,沒有初始化root密碼,或者在使用Mysql時忘記密碼,該如何重置root密碼,本篇文章將記錄一下這個問題的解決辦法。
方法一,該方法只在Ubuntu或者Debian用戶下有效。
第一步:輸入sudo vim /etc/mysql/debian.cnf,打開/etc/mysql/目錄下的debian.cnf文件,記住這里的用戶名和密碼。

第二步:使用改密碼登錄Mysql

第三步:選擇數據庫,使用Mysql

第四步:重置為新的密碼,這里分為兩個版本
一直使用5.7的命令在8.0的版本中執行,一直報錯,感到很詫異,后查找資料后發現,mysql 5.7.9以后廢棄了password字段和password()函數;
而且用於表示用戶密碼的authentication_string字段只能是mysql加密后的41位字符串密碼。因此在修改密碼時,5.7版本和8.0版本有所不同,需要使用不同的語句執行,其他版本也有可能不同。
1、MySql5.7
update user set authentication_string = password(["your new password"]) where user = "your username" [and Host="localhost"];
2、MySql8.0
(1)檢查authentication_string字段是否為空,不為空先置空,我比較懶,我就直接置空了。
use mysql;
update user set authentication_string='' where user='your username';
ALTER user 'your username'@'localhost' IDENTIFIED BY 'your new password';
(2)如果順利執行,那么恭喜你已經修改密碼成功了,如果報錯則執行flush privileges;刷新MySQL的系統權限相關表后再次執行上一步。
方法二
第一步:跳過權限驗證登錄Mysql
(1)編輯Mysqld.cnf 文件
命令行下輸入 sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
然后在配置文件中任意位置輸入 skip-grant-tables ,然后保存退出。
(2)然后重新啟動Mysql
sudo service mysql restart
第二步
直接輸入輸入Mysql進行登錄。
登錄后的操作就與方法一中后續操作一致了。
版本說明:
登錄進入Mysql,在命令行輸入 \s 或者 status
Mysql 版本8.0.28
Ubuntu版本 20.04.3

