MySQL 更換 root 密碼

忘記 MySQL root 的密碼 ? 無法進入 MySQL ? 先不用急著重新安裝 MySQL,其實只需要重新設定 root 的密碼就可以了

使用情境

  • 忘記密碼
  • 安裝 MySQL 時忘記設定密碼
  • $ mysql -p 無法進入 MySQL 的介面
  • ERROR 1045 (28000): Access denied for user 'root'@'localhost'
  • 關鍵字搜尋:how to reset MySQL root password

重設密碼

  1. 關閉 MySQL
  2. 啟用 mysqld_save
  3. 進入 MySQL
  4. 更新 root 密碼
  5. 刷新 MySQL 系統相關權限表
  6. 重啟 MySQL

1. 關閉 MySQL

service mysql stop

2. 啟用 mysqld_save

mysqld_safe --skip-grant-tables &

如果出現 UNIX socket file don't exists 相關錯誤了話,需要手動建立 mysqld的資料夾目錄:

mkdir -p /var/run/mysqld
chown mysql:mysql /var/run/mysqld

3. 進入 MySQL

mysql

4. 更新 root 密碼

MySQL version < 5.7

update user set password=PASSWORD("newpassword") where User='root';

MySQL version >= 5.7

update user set authentication_string=password('mynewpassword') where user='root';

5. 刷新 MySql 系統相關權限表

flush privileges

6. 重啟 MySQL

mysqladmin -u root -p shutdown

參考連結