[MySQL] ลืมรหัสผ่าน root ของ MySQL/MariaDB ทำไงดี

[MySQL] ลืมรหัสผ่าน root ของ MySQL/MariaDB ทำไงดี?

ผมเจอปัญหานี้กับตัวเอง เพราะลงโปรแกรมทิ้งไว้นานแล้ว และชีวิตนี้มีรหัสผ่านอีกร้อยแปดพันเก่าที่ต้องจำ สุดท้าย ลืม!!

แล้วจะทำอย่างไรดี?

จากที่ผมลองหาข้อมูลและทดลองปฏิบัติตามมีวิธีง่ายๆ ดังนี้ (แต่ขอบอกก่อนว่าสำหรับเครื่อง DEV น่ะครับ ไม่แนะนำทำบน PRD)

เฉพาะ MySQL version 5.7 ขึ้นไป และ MariaDB version 10 ขึ้นไป ครับ
  1.  หยุด Service MySQL ก่อน ด้วยคำสั่ง "net stop mysql" (run as admin) หรือจะ service.msc ที่ RUN ได้ก็ แล้วหา MySQL service แล้วแต่สะดวกเลย
  2.  สร้างไฟล์ สำหรับ reset password ขึ้นมา แล้ว Copy code ด้านล่างไปใส่ แล้วบันทึกเป็นไฟล์ txt ผมตั้งชื่อ MySQL_reset.txt และบันทึกไว้ที่ Drive C: แล้วกัน.

    MySQL 5.7.6 ขึ้นไป
    ALTER USER 'root'@'localhost' IDENTIFIED BY '[new password]';
    

    MySQL 5.7.5 ลงมา
    SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
    
    
  3.  สั่ง Start MySQL ทาง command line ด้วยคำสั่งนี้ (run as admin)

    "C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe" --defaults-file="C:\ProgramData\MySQL\MySQL Server 8.0\my.ini" --init-file=c:\MySQL_reset.txt
  4.  ถือว่าเสร็จสิ้นการ reset password กดปุ่ม [CTL]+C ที่หน้า cmd ได้เลย
  5.  Start service MySQL ให้ทำงานตามปกติ ที่ service.msc หรือจะ command line ก็ได้ "net start mysql" (run as admin)
ถือว่าเสร็จสิ้นครับ