目次
1. ความสำคัญของการเปลี่ยนรหัสผ่าน root ของ MySQL
เพื่อให้มั่นใจในความปลอดภัยของฐานข้อมูล การเปลี่ยนรหัสผ่านของผู้ใช้ root ของ MySQL มีความสำคัญอย่างยิ่ง ผู้ใช้ root เป็นบัญชีที่มีสิทธิ์สูงสุดในการเข้าถึงฐานข้อมูลทั้งหมดและต้องการการจัดการที่เหมาะสม โดยเฉพาะอย่างยิ่ง การใช้ค่าตั้งต้นเดิมเป็นความเสี่ยงด้านความปลอดภัย ดังนั้นควรเข้าใจความจำเป็นในการเปลี่ยนแปลงอย่างชัดเจนประโยชน์ของการเปลี่ยนรหัสผ่าน root
- เพิ่มความปลอดภัย:ป้องกันการเข้าถึงโดยไม่ได้รับอนุญาตและช่วยปกป้องข้อมูล
- การจัดการการเข้าถึง:ทำให้ชัดเจนว่าใครทำอะไรได้และสามารถจัดการสิทธิ์ได้
- การปกป้องฐานข้อมูล:การจัดการผู้ใช้ root อย่างปลอดภัยช่วยเพิ่มความเชื่อถือของฐานข้อมูลทั้งหมด
2. การเตรียมการล่วงหน้าและข้อควรตรวจสอบ
เนื่องจากวิธีการเปลี่ยนรหัสผ่านจะแตกต่างตามเวอร์ชันของ MySQL ดังนั้นจึงต้องตรวจสอบเวอร์ชันของ MySQL ก่อน นอกจากนี้ ก่อนทำการเปลี่ยนรหัสผ่าน ควรทำความเข้าใจความเสี่ยงที่อาจทำให้การเข้าถึงถูกจำกัดและแนะนำให้ทำการสำรองข้อมูลก่อนทำงานวิธีตรวจสอบเวอร์ชัน
- เปิดเทอร์มินัลหรือคอมมานด์พรอมต์แล้วพิมพ์คำสั่งต่อไปนี้:
mysql --versionด้วยคำสั่งนี้คุณสามารถตรวจสอบเวอร์ชันของ MySQL ได้ สำหรับเวอร์ชัน 5.7 ขึ้นไปจะใช้คำสั่ง ALTER USER เป็นหลัก แต่ก่อนหน้านั้นแนะนำให้ใช้คำสั่ง UPDATE
3. ขั้นตอนการเปลี่ยนรหัสผ่าน root ของ MySQL
เพื่อเปลี่ยนรหัสผ่าน root ของ MySQL มีวิธีหลักสองวิธี: คำสั่ง ALTER USER และคำสั่ง SET PASSWORD เราจะอธิบายขั้นตอนโดยละเอียดต่อไปนี้วิธีที่ 1 – การใช้คำสั่ง ALTER USER
ในเวอร์ชัน MySQL 5.7 ขึ้นไป ใช้คำสั่งต่อไปนี้เพื่อเปลี่ยนรหัสผ่านของผู้ใช้ rootALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';'new_password'ส่วนนี้ให้แทนที่ด้วยรหัสผ่านที่ต้องการตั้งค่า- หลังจากพิมพ์คำสั่งแล้ว ให้เข้าสู่ระบบ MySQL อีกครั้งเพื่อตรวจสอบว่าการเปลี่ยนแปลงสำเร็จหรือไม่
วิธีที่ 2 – การใช้คำสั่ง SET PASSWORD
ในเวอร์ชัน MySQL ก่อน 5.6 มักใช้คำสั่ง SET PASSWORD ดังต่อไปนี้SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_password');- เช่นเดียวกัน การตรวจสอบหลังการตั้งค่ามีความสำคัญ นอกจากนี้ให้รัน FLUSH PRIVILEGES เพื่อให้การเปลี่ยนแปลงมีผล
4. วิธีการจัดการในสถานการณ์พิเศษ
หากลืมรหัสผ่านหรือไม่สามารถเปลี่ยนได้ตามขั้นตอนปกติ ให้ใช้โหมดการกู้คืนขั้นตอนรีเซ็ตเมื่อ忘รหัสผ่าน
- หยุดบริการ MySQL:
sudo service mysql stop- ใช้ตัวเลือก
--skip-grant-tablesเพื่อเริ่ม MySQL ให้สามารถเข้าถึงโดยไม่มีรหัสผ่าน:
mysqld_safe --skip-grant-tables &- เข้าถึง MySQL ด้วยผู้ใช้ root แล้วตั้งรหัสผ่านใหม่:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_password');- รีสตาร์ท MySQL เพื่อให้การตั้งค่ามีผล
ข้อผิดพลาดทั่วไปและวิธีแก้
แสดงข้อผิดพลาดที่พบบ่อยและวิธีแก้ของมันด้านล่าง- Access denied:ตรวจสอบว่าชื่อผู้ใช้และรหัสผ่านถูกต้องหรือไม่
- skip-grant-tablesエラー:แก้ไขโดยตรวจสอบและปรับแก้ตัวเลือกที่เกี่ยวข้องในไฟล์ตั้งค่า MySQL
5. การตั้งค่าเพิ่มเติมเพื่อเสริมความปลอดภัย
ไม่เพียงแค่การเปลี่ยนรหัสผ่าน root เท่านั้น การเสริมความปลอดภัยเพิ่มเติมก็สำคัญเช่นกันการปิดการเข้าถึงระยะไกล
โดยการปิดการเข้าถึงระยะไกลของผู้ใช้ root จะช่วยลดความเสี่ยงจากการเข้าถึงจากภายนอกได้ สามารถรันคำสั่งต่อไปนี้:UPDATE mysql.user SET Host='localhost' WHERE User='root';จากนั้นใช้ FLUSH PRIVILEGES เพื่อให้การเปลี่ยนแปลงมีผลเคล็ดลับการตั้งรหัสผ่านที่แข็งแรง
- รูปแบบรหัสผ่านที่แนะนำ: ผสมตัวอักษรใหญ่, ตัวอักษรเล็ก, ตัวเลข, และอักขระพิเศษ และตั้งรหัสผ่านที่มีความยาวอย่างน้อย 12 ตัวอักษร
- เพื่อเสริมความปลอดภัย ควรอัปเดตรหัสผ่านเป็นระยะ
6. สรุป
สุดท้าย หากคุณได้ทำการเปลี่ยนรหัสผ่าน root ของ MySQL แล้ว การปฏิบัติตามแนวปฏิบัติที่ดีที่สุดต่อไปนี้จะช่วยเพิ่มความปลอดภัยยิ่งขึ้น- การลบบัญชีที่ไม่จำเป็น:ลบบัญชีผู้ใช้ที่ไม่จำเป็นต้องเข้าถึงและทำให้ระบบเรียบง่ายขึ้น
- การจัดการสิทธิ์การเข้าถึง:สร้างบัญชีการจัดการที่ไม่ใช่ผู้ใช้ root และมอบสิทธิ์การเข้าถึงที่เหมาะสมเพื่อเตรียมพร้อมรับความเสี่ยงด้านความปลอดภัยที่อาจเกิดขึ้น
- การตรวจสอบเป็นระยะ:ตรวจสอบบันทึกการเข้าถึงและการตั้งค่าเพื่อยืนยันความปลอดภัยของระบบทั้งหมด


