วิธีการรีเซ็ต root password ใน MySQL
โพสต์แล้ว: 11 ก.ย. 2010 20:48
เมื่อสักครู่นี้ผมจำเป็นต้องรีโมทเข้าไปเซ็ตเครื่องให้ลูกค้ารายหนึ่งที่เพิ่งติดตั้งใหม่ๆ ลูกค้าก็จำ root password ของ MySQL ไม่ได้ ผมก็เลย search หาวิธีรีเซ็ต root password ของ MySQL แล้วลองทำดู ก็เวอร์คครับ เลยเอามาแชร์ครับ ผมทำกับ MySQL 5.0.77 บน CentOS 5.5 นะครับ
1. Stop MySQL service ด้วยคำสั่งนี้
2. แก้ไขไฟล์ /etc/my.cnf แล้วใส่บรรทัด skip-grant-tables ไว้ภายใน [mysqld] ดังตัวอย่างครับ
3. Start MySQL service ด้วยคำสั่งนี้
4. ก็จะเข้า mysql โดยไม่ต้องใช้ password ได้เลยครับ พิมพ์คำสั่ง mysql แล้วกด enter ก็จะได้พร้อมท์ของ mysql เลย
5. จากนั้นเซ็ต root password ใหม่ด้วยคำสั่งนี้
แก้ไขค่า newpassword ตามใจชอบนะครับ แล้วพิมพ์คำสั่ง flush privileges เพื่อให้มีผล และพิมพ์ exit เพื่อออกจากพร้อมท์ mysql ครับ
6. แก้ไขไฟล์ /etc/my.cnf กลับคืนให้เหมือนเดิมครับ
7. รีสตาร์ท mysql แล้วลองเข้า mysql ด้วยพาสเวอร์ดใหม่ ก็จะเข้าได้ครับ
1. Stop MySQL service ด้วยคำสั่งนี้
- โค้ด: เลือกทั้งหมด
# service mysqld stop
2. แก้ไขไฟล์ /etc/my.cnf แล้วใส่บรรทัด skip-grant-tables ไว้ภายใน [mysqld] ดังตัวอย่างครับ
- โค้ด: เลือกทั้งหมด
# vi /etc/my.cnf
- โค้ด: เลือกทั้งหมด
[mysqld]
skip-grant-tables
3. Start MySQL service ด้วยคำสั่งนี้
- โค้ด: เลือกทั้งหมด
# service mysqld start
4. ก็จะเข้า mysql โดยไม่ต้องใช้ password ได้เลยครับ พิมพ์คำสั่ง mysql แล้วกด enter ก็จะได้พร้อมท์ของ mysql เลย
- โค้ด: เลือกทั้งหมด
# mysql
- โค้ด: เลือกทั้งหมด
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.0.77 Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
5. จากนั้นเซ็ต root password ใหม่ด้วยคำสั่งนี้
- โค้ด: เลือกทั้งหมด
mysql> update mysql.user set password=PASSWORD("newpassword") where user='root';
แก้ไขค่า newpassword ตามใจชอบนะครับ แล้วพิมพ์คำสั่ง flush privileges เพื่อให้มีผล และพิมพ์ exit เพื่อออกจากพร้อมท์ mysql ครับ
- โค้ด: เลือกทั้งหมด
mysql> flush privileges;
mysql> exit
6. แก้ไขไฟล์ /etc/my.cnf กลับคืนให้เหมือนเดิมครับ
- โค้ด: เลือกทั้งหมด
#vi /etc/my.cnf
- โค้ด: เลือกทั้งหมด
[mysqld]
#skip-grant-tables
7. รีสตาร์ท mysql แล้วลองเข้า mysql ด้วยพาสเวอร์ดใหม่ ก็จะเข้าได้ครับ
- โค้ด: เลือกทั้งหมด
# service mysqld restart