บทช่วยสอนทีละขั้นตอนเพื่อเรียนรู้วิธีกู้คืนรหัสผ่านรูทของเซิร์ฟเวอร์ SQL
ผู้ใช้ที่สำคัญที่สุดของเซิร์ฟเวอร์ MySQL เป็นผู้ใช้อย่างแน่นอน"root". ผู้ใช้นี้มีทุกอย่าง สิทธิ์ระดับผู้ดูแล ฐานข้อมูล (MySQL databases).
ในกรณีที่คุณไม่รู้ว่ารหัสผ่านรูทของผู้ใช้ MySQL คืออะไร คุณจะต้องทำตามขั้นตอนง่ายๆ สองสามขั้นตอนเพื่อรีเซ็ตรหัสผ่านนี้
บทช่วยสอนนี้สร้างขึ้นสำหรับเซิร์ฟเวอร์ MySQL ติดตั้งบนระบบปฏิบัติการ CentOSแต่กระบวนการจะเหมือนกันสำหรับการแจกจ่ายอื่นๆ Linux.
วิธีกู้คืนรหัสผ่านสำหรับผู้ใช้รูทของเซิร์ฟเวอร์ SQL
ในการกู้คืนรหัสผ่านสำหรับผู้ใช้รูทของเซิร์ฟเวอร์ SQL วิธีที่ง่ายที่สุดคือ SSH (Secure Shell).
1. เราเข้าสู่ระบบด้วยผู้ใช้ "root” ไปยังระบบที่เซิร์ฟเวอร์ MySQL อยู่ (ผู้ใช้รูทของระบบ ไม่ใช่ของเซิร์ฟเวอร์ MySQL) เข้าสู่ระบบโดยตรงจากคอนโซลหรือจากระยะไกลผ่านการเชื่อมต่อ SSH (กับ ผงสำหรับอุดรู จากระบบ Windows).
ฮิต กระบวนการหยุด / MySQL
service mysqld stop
หรือ
/etc/init.d/mysqld stop
ผลจะเป็น:
Stopping MySQL: [ OK ]
3. เราเริ่มเซิร์ฟเวอร์ MySQL ด้วยตัวเลือก "--skip-grant-tables
". การเริ่มต้นเซิร์ฟเวอร์ MySQL/daemon ดำเนินการโดยไม่ต้องใช้รหัสผ่าน
mysqld_safe --skip-grant-tables &
ผลลัพธ์หลังจากบรรทัดคำสั่งด้านบน:
[1] 3041
[root@server ~]# Starting mysqld daemon with databases from /var/lib/mysql
4. เราเชื่อมต่อกับเซิร์ฟเวอร์ mysql กับผู้ใช้ "root" โดยใช้คำสั่ง:
mysql -u root
ผลของคำสั่ง:
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 1
Server version: 5.0.77 Source distribution
Type 'help;' or 'h' for help. Type 'c' to clear the buffer.
mysql>
5. เลือกฐานข้อมูล mysql และตั้งรหัสผ่านใหม่สำหรับผู้ใช้ "root"
use mysql;
update user set password=PASSWORD("New_Password") where User='root';
flush privileges;
quit
ผลลัพธ์จากคำสั่งด้านบน:
mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> update user set password=PASSWORD("123456") where User='root';
Query OK, 0 rows affected (0.00 sec)
Rows matched: 3 Changed: 0 Warnings: 0
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)
mysql> quit
Bye
[root@server ~]#
6. เราหยุดและรีสตาร์ทบริการ / เซิร์ฟเวอร์ MySQL
service mysqld stop
service mysqld start
ผล:
Starting MySQL: [ OK ]
รูปภาพด้านล่างแสดงทุกอย่าง ขั้นตอนการตั้งค่ารหัสผ่าน ของผู้ใช้"root” ของเซิร์ฟเวอร์ MySQL.
ตอนนี้เราสามารถเชื่อมต่อกับ MySQL (ผ่าน phpMyAdmin เช่น) กับผู้ใช้ "รูท" โดยใช้รหัสผ่านใหม่ที่ตั้งไว้ด้านบน
กวดวิชาทดสอบ CentOS 5.6 ด้วย MySQL Ver 14.12 Distrib 5.0.77 สำหรับ redhat-linux-gnu (i686) โดยใช้ readline 5.1