由於工作內容時常接手不明主機, 找 root 密碼早已是家常便飯, 這邊與各位分享 Mysql <= 5.7.5 以及 Mysql >= 5.7.6 的 root 重設方法
1. Stop Service
停止執行中的 mysql
service mysql stop
2. Run Mysql in single-user mode
進入單人模式
mysqld_safe --skip-grant-tables --skip-networking &
參數解釋:
* –skip-grant-tables: 不載入權限表
* –skip-networking: 關閉網路連線(遠端使用者將無法連入主機)
警告: 單人模式下所有人都可以免密碼存取 root, 若您的環境是共用系統, 為避免造成資安上的疑慮, 請務必將主機上其他人請下線.
3. Reset Root Password
3.1 Mysql <= 5.7.5
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('root_password');
3.2 Mysql >= 5.7.6
UPDATE mysql.user SET authentication_string = PASSWORD('root_password')
WHERE User = 'root' AND Host = 'localhost';
4. Flush Privileges
FLUSH PRIVILEGES;
exit;
5. Restart mysql
重新執行 mysql, 使其恢復正常模式
service mysql stop
service mysql start
6. Finish
現在可以使用新的 root 密碼進行登入了~