現在常使用 Docker 的情況下,MySQL 的安裝沒有問答的狀況,常常都會遇到不知道密碼不知道該怎麼辦的情況~
由自己寫的文章看來,每幾年就會遇到一次,然後遇到後,每次的做法都有些許不同~
來記錄這次的做法~
MySQL 忘記 root 密碼強制進入並重設密碼
MySQL 8.0 後,若不知道 root 密碼,要強制重新設定做法如下:
- 先產生一個檔案,內容如下(假設放在 /tmp/mysql-init):
- ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';"
- 把所有 MySQL process 都停掉
- mysqld --init-file=/tmp/mysql-init & # MySQL 啟動強制載入此檔案,就會修改 MySQL root 密碼變成剛剛設定那個密碼
步驟:
- echo "ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';" > /tmp/mysql-init
- killall mysqld # 可以使用正常方式關閉,這個方式有點暴力
- mysqld --init-file=/tmp/mysql-init &
- 成功啟動後,可以使用:
- mysql -u root -pMyNewPass # 進入操作 MySQL
若已經登入 MySQL 想要修改 root 密碼:
- mysql> use mysql;
- mysql> UPDATE user SET Password=PASSWORD("password") WHERE User='root';