重設 mysql root 密碼(Mysql 5.7.5 以下, 5.7.6 以上)

由於工作內容時常接手不明主機, 找 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 密碼進行登入了~