« 如何在儲存管理平台和雲端平台整合後,透過開源技術協助儲存資源的部署與交付?哪些資料備份場景依然是信創趨勢下的關注重點? »

MySQL的root密碼如何找回?

Friday, January 12, 2024 KillTest 0条评论 0个引用

 以下文章來自MySQL解決方案工程師 ,作者徐軼事韜

 
 
如果忘了MySQL的root密碼,有很多的方法可以補救,曾經寫過這篇《MySQL忘了帳號密碼,除了跑路,還能補救麼? 》,徐老師的這篇文章《忘記了MySQL的root密碼該怎麼辦? 》同樣值得借鏡。
 
(1)通用方法(安全性略低),適用於任何平台。
 
停止MySQL伺服器。
 
重新啟動MySQL伺服器使用「 --skip-grant-tables 」選項,使用該選項啟動MySQL伺服器將允許任何使用者不使用密碼和所有權限進行連接,並停用諸如「ALTER USER」和「SET password」之類的帳戶 管理語句(存在安全風險)。
 
啟動“mysql”客戶端(無需密碼)
 
使用「FLUSH PRIVILEGES;」重新載入授權表,載入後可以執行帳號管理語句
 
執行「ALTER USER」語句更改root使用者的密碼
 
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
重新啟動MySQL伺服器(取消--skip-grant-tables選項)
 
(2)Windows上的操作方法
 
使用Windows的管理者登陸
 
停止MySQL伺服器,如果MySQL以window服務啟動,可以在開始-》控制面板-》管理工具-》服務裡面找到MySQL的服務,並將其停止。
 
建立一個文字文件,裡面記錄下面的內容
 
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
儲存該文字文件,例如,“C:\mysql-init.txt”
 
開啟window的命令列,開始-》執行-》cmd
 
使用系統變數“init_file ”啟動MySQL伺服器
 
C:\> cd "C:\Program Files\MySQL\MySQL Server 8.0\bin"
C:\> mysqld --init-file=C:\\mysql-init.txt
伺服器將啟動,並將root使用者的密碼設定為文字檔案中的新密碼
 
成功啟動後,刪除「C:\mysql-init.txt」文件
 
(3)類Unix系統的操作方法
 
使用執行MySQL伺服器的使用者登入作業系統,例如,mysql或root
 
停止MySQL伺服器,可以透過使用kill指令(不是kill -9)正常停止mysqld進程。 “.pid ”檔案包含mysqld的進程信息,通常可以在“/var/lib/mysql/”、 “/var/run/mysqld/”,和“/usr/local/mysql/data/”中找到,例如 ,
 
$> kill `cat /mysql-data-directory/host_name.pid`
建立一個包含以下內容的文字文件,
 
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
檔案儲存為“/home/me/mysql-init”
 
使用系統變數“--init-file”並將變數值指定為已儲存的文字文件,啟動MySQL伺服器
 
$> mysqld --init-file=/home/me/mysql-init &
成功啟動MySQL伺服器,刪除文字檔案「/home/me/mysql-init」。
 
當然,如果能管理好這些的帳號,可能會更好。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最近发表

Powered By Z-Blog 1.8 Arwen Build 81206