หน้า 1 จากทั้งหมด 1

วิธีการรีเซ็ต root password ใน MySQL

โพสต์โพสต์แล้ว: 11 ก.ย. 2010 20:48
โดย nuiz
เมื่อสักครู่นี้ผมจำเป็นต้องรีโมทเข้าไปเซ็ตเครื่องให้ลูกค้ารายหนึ่งที่เพิ่งติดตั้งใหม่ๆ ลูกค้าก็จำ root password ของ MySQL ไม่ได้ ผมก็เลย search หาวิธีรีเซ็ต root password ของ MySQL แล้วลองทำดู ก็เวอร์คครับ เลยเอามาแชร์ครับ ผมทำกับ MySQL 5.0.77 บน CentOS 5.5 นะครับ


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