รหัสผ่านเริ่มต้นของ MySQL: วิธีค้นหา, เปลี่ยนและรีเซ็ต (คู่มือ Linux & Windows)

目次

1. บทนำ

MySQL เป็นระบบจัดการฐานข้อมูลที่ได้รับความนิยมและใช้งานอย่างกว้างขวางในหลายระบบและสภาพแวดล้อมต่าง ๆ การตั้งค่าเริ่มต้นที่สำคัญคือการยืนยันและจัดการรหัสผ่านเริ่มต้นอย่างถูกต้อง หากรหัสผ่านเริ่มต้นไม่ได้รับการจัดการอย่างเหมาะสม อาจทำให้เกิดความเสี่ยงด้านความปลอดภัยหรือปัญหาในการเข้าถึงได้

บทความนี้อธิบายวิธีตรวจสอบรหัสผ่านเริ่มต้นของ MySQL วิธีการเปลี่ยนรหัสผ่าน และวิธีแก้ไขปัญหาต่าง ๆ — ทั้งหมดในรูปแบบที่ผู้เริ่มต้นสามารถเข้าใจได้ง่าย

2. รหัสผ่านเริ่มต้นของ MySQL คืออะไร?

ภาพรวมของรหัสผ่านเริ่มต้น

เมื่อทำการติดตั้ง MySQL ครั้งแรก จะมีการตั้งรหัสผ่านเริ่มต้นให้กับผู้ใช้ผู้ดูแลระบบฐานข้อมูล (โดยทั่วไปคือ “root”) พฤติกรรมของรหัสผ่านนี้จะแตกต่างกันตามเวอร์ชันของ MySQL

ความแตกต่างตามเวอร์ชัน

  • MySQL 5.7 และรุ่นต่อไป : รหัสผ่านชั่วคราวจะถูกสร้างโดยอัตโนมัติระหว่างการติดตั้งและบันทึกลงในไฟล์บันทึก
  • เวอร์ชันก่อนหน้า : มักจะติดตั้ง MySQL โดยไม่มีรหัสผ่าน (รหัสผ่านว่าง)

ทำไมรหัสผ่านเริ่มต้นจึงสำคัญ

หากรหัสผ่านเริ่มต้นไม่ได้รับการจัดการอย่างเหมาะสม ความเสี่ยงจากการเข้าถึงโดยไม่ได้รับอนุญาตจะเพิ่มขึ้น หลังการติดตั้งจึงควรตรวจสอบรหัสผ่านและเปลี่ยนหากจำเป็นอย่างยิ่ง

3. วิธีตรวจสอบรหัสผ่านเริ่มต้น

สำหรับสภาพแวดล้อม Linux

หากคุณติดตั้ง MySQL บนสภาพแวดล้อม Linux คุณสามารถตรวจสอบรหัสผ่านเริ่มต้นได้โดยทำตามขั้นตอนต่อไปนี้

  1. เข้าสู่ระบบและเปิดเทอร์มินัล
  2. รันคำสั่งต่อไปนี้เพื่อดูไฟล์บันทึก
    sudo grep 'temporary password' /var/log/mysqld.log
    
  1. ในผลลัพธ์ให้ค้นหาบรรทัดที่มีคำว่า “temporary password” รหัสผ่านเริ่มต้นจะปรากฏหลังจากคำนั้น

ตัวอย่าง:

2025-01-22T10:22:33.123456Z 1 [Note] A temporary password is generated for root@localhost: Abc123!@#

สำหรับสภาพแวดล้อม Windows

ในสภาพแวดล้อม Windows คุณต้องตรวจสอบไฟล์ mysqld.log ด้วยตนเอง

  1. เปิดโฟลเดอร์การติดตั้ง MySQL (โดยทั่วไปคือ C:\ProgramData\MySQL\MySQL Server X.X )
  2. ค้นหาไฟล์ mysqld.log แล้วเปิดด้วยโปรแกรมแก้ไขข้อความ
  3. ค้นหาคำว่า “temporary password” เช่นเดียวกับวิธีใน Linux

หมายเหตุสำคัญ

  • หากรหัสผ่านเริ่มต้นไม่ปรากฏในไฟล์บันทึก ให้ดูส่วนการแก้ไขปัญหาด้านล่างนี้

4. วิธีเปลี่ยนรหัสผ่านเริ่มต้น

การใช้ MySQL ด้วยการกำหนดค่าเริ่มต้นทำให้ความเสี่ยงด้านความปลอดภัยเพิ่มขึ้น ดังนั้นจึงแนะนำให้เปลี่ยนรหัสผ่านเริ่มต้นทันทีหลังการติดตั้ง ด้านล่างนี้เป็นขั้นตอนโดยละเอียดสำหรับการเปลี่ยนรหัสผ่าน

การเปลี่ยนรหัสผ่านด้วยคำสั่ง mysql_secure_installation

mysql_secure_installation เป็นเครื่องมือบรรทัดคำสั่งที่ช่วยกำหนดค่าความปลอดภัยเริ่มต้นของ MySQL การใช้เครื่องมือนี้ทำให้คุณสามารถเพิ่มความปลอดภัยรวมถึงการเปลี่ยนรหัสผ่านเริ่มต้นได้ในขั้นตอนเดียว

  1. เปิดเทอร์มินัลหรือ command prompt แล้วรันคำสั่งต่อไปนี้
    sudo mysql_secure_installation
    
  1. ระบบจะขอให้คุณใส่รหัสผ่านเริ่มต้น ใส่รหัสผ่านที่คุณยืนยันระหว่างการติดตั้ง
  2. คุณจะเห็นตัวเลือกในการกำหนดนโยบายรหัสผ่าน เลือกความแข็งแรงที่เหมาะสม (แนะนำให้ใช้รหัสผ่านที่แข็งแรง)
  3. ใส่รหัสผ่านใหม่ แล้วพิมพ์ซ้ำเพื่อยืนยัน
  4. ทำตามคำแนะนำเพื่อกำหนดค่าการรักษาความปลอดภัยเพิ่มเติม (เช่น การลบผู้ใช้แบบไม่ระบุตัวตนและการปิดการเข้าสู่ระบบ root จากระยะไกล)

การเปลี่ยนรหัสผ่านด้วยตนเอง

คุณยังสามารถเปลี่ยนรหัสผ่านโดยตรงด้วย SQL จากบรรทัดคำสั่งได้

  1. เข้าสู่ระบบ MySQL
    mysql -u root -p
    
  1. รันคำสั่ง SQL เพื่อเปลี่ยนรหัสผ่าน
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewStrongPassword';
    

※ แทนที่ NewStrongPassword ด้วยรหัสผ่านที่ปลอดภัย

  1. ใช้คำสั่งต่อไปนี้เพื่อบังคับให้การเปลี่ยนแปลงมีผล
    FLUSH PRIVILEGES;
    
  1. ออกจาก MySQL
    exit
    

การตั้งค่านโยบายและความแข็งแรงของรหัสผ่าน

ในบางกรณี MySQL จะเปิดใช้นโยบายรหัสผ่านโดยค่าเริ่มต้น นโยบายนี้ป้องกันการใช้รหัสผ่านที่อ่อนแอเพื่อเพิ่มความปลอดภัย

  • เพื่อตรวจสอบนโยบายปัจจุบัน ให้รัน:
    SHOW VARIABLES LIKE 'validate_password%';
    
  • เพื่อลดความเข้มของนโยบาย ให้แก้ไขการตั้งค่าต่อไปนี้:
    SET GLOBAL validate_password.policy=LOW;
    

หมายเหตุสำคัญ

  • หลังจากเปลี่ยนรหัสผ่าน คุณอาจไม่สามารถเข้าถึง MySQL ได้ ในกรณีนั้นให้ตรวจสอบไฟล์การกำหนดค่าและการตั้งค่าการเชื่อมต่อ.
  • การเลือกใช้รหัสผ่านที่แข็งแรงจะลดความเสี่ยงของการเข้าถึงโดยไม่ได้รับอนุญาตอย่างมาก.

5. ควรทำอย่างไรหากไม่สามารถยืนยันรหัสผ่านเริ่มต้นได้

หากคุณไม่สามารถยืนยันรหัสผ่านเริ่มต้นของ MySQL ได้ อาจมีปัญหาเกี่ยวกับการกำหนดค่าไฟล์บันทึกหรือขั้นตอนการทำงาน ส่วนนี้จะอธิบายสาเหตุที่เป็นไปได้และวิธีแก้ไขเฉพาะ

หากรหัสผ่านเริ่มต้นไม่ได้แสดงในบันทึก

ใน MySQL 5.7 ขึ้นไป รหัสผ่านเริ่มต้นจะถูกบันทึกลงในไฟล์บันทึก อย่างไรก็ตาม ขึ้นอยู่กับการกำหนดค่าหรือสภาพแวดล้อม อาจไม่ได้บันทึกไว้

จุดที่ต้องตรวจสอบ

  1. ตำแหน่งไฟล์บันทึก : เส้นทางเริ่มต้นของไฟล์บันทึก MySQL มีดังนี้.
  • Linux : /var/log/mysqld.log
  • Windows : C:\ProgramData\MySQL\MySQL Server X.X\mysqld.log ตรวจสอบไฟล์การกำหนดค่า ( my.cnf หรือ my.ini ) เพื่อให้แน่ใจว่าตำแหน่งการส่งออกบันทึกไม่ได้ถูกเปลี่ยนแปลง.
  1. การตั้งค่าระดับบันทึก : หากระดับบันทึกของ MySQL ไม่ได้กำหนดอย่างถูกต้อง รหัสผ่านเริ่มต้นอาจไม่ถูกบันทึก แก้ไขไฟล์ my.cnf และเพิ่มหรือยืนยันการตั้งค่าต่อไปนี้.
    [mysqld]
    log_error=/var/log/mysqld.log
    

วิธีรีเซ็ตรหัสผ่านหากไม่ทราบ

หากรหัสผ่านไม่ปรากฏในบันทึกหรือคุณสูญเสียรหัสผ่านเริ่มต้น คุณสามารถรีเซ็ตได้โดยใช้ขั้นตอนต่อไปนี้.

ขั้นตอน:

  1. เริ่ม MySQL ในโหมดปลอดภัย : โหมดปลอดภัยทำให้คุณสามารถเข้าถึง MySQL โดยไม่ต้องยืนยันตัวตน.
    sudo systemctl stop mysqld
    sudo mysqld_safe --skip-grant-tables &
    
  1. เข้าสู่ระบบ MySQL : เข้าถึง MySQL โดยไม่ต้องยืนยันตัวตน.
    mysql -u root
    
  1. รีเซ็ตรหัสผ่าน : รันคำสั่ง SQL เพื่อรีเซ็ตรหัสผ่าน.
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewStrongPassword';
    

※ แทนที่ NewStrongPassword ด้วยรหัสผ่านที่ปลอดภัย.

  1. นำการเปลี่ยนแปลงไปใช้ :
    FLUSH PRIVILEGES;
    
  1. รีสตาร์ท MySQL : ออกจากโหมดปลอดภัยและรีสตาร์ท MySQL ในโหมดปกติ.
    sudo systemctl restart mysqld
    

หากปัญหาไม่ได้รับการแก้ไข

หากปัญหาไม่ได้รับการแก้ไขด้วยขั้นตอนข้างต้น ให้พิจารณาตัวเลือกต่อไปนี้.

  • ติดตั้ง MySQL ใหม่ : หากฐานข้อมูลยังไม่ได้ใช้งาน คุณอาจติดตั้ง MySQL ใหม่เพื่อคืนสภาพเป็นเริ่มต้น.
  • ปรึกษาเอกสารหรือการสนับสนุนอย่างเป็นทางการ : หากมีข้อความแสดงข้อผิดพลาดเฉพาะ ให้อ้างอิงเอกสารหรือฟอรั่มของ MySQL อย่างเป็นทางการ.

6. คำถามที่พบบ่อย

ต่อไปนี้คือคำถามที่พบบ่อยและคำตอบเกี่ยวกับรหัสผ่านเริ่มต้นของ MySQL ให้ดูส่วนนี้เพื่อแก้ไขข้อสงสัยหรือปัญหาอย่างรวดเร็ว.

Q1: ควรทำอย่างไรหากลืมรหัสผ่านเริ่มต้น?

หากคุณลืมรหัสผ่านเริ่มต้น คุณสามารถรีเซ็ตได้โดยทำตามขั้นตอนต่อไปนี้.

  1. หยุด MySQL.
    sudo systemctl stop mysqld
    
  1. เริ่ม MySQL ในโหมดปลอดภัย.
    sudo mysqld_safe --skip-grant-tables &
    
  1. เข้าสู่ MySQL และตั้งรหัสผ่านใหม่.
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewStrongPassword';
    FLUSH PRIVILEGES;
    
  1. รีสตาร์ท MySQL เพื่อกลับสู่โหมดปกติ.
    sudo systemctl restart mysqld
    

Q2: ฉันจะตรวจสอบรหัสผ่านหลังจากเปลี่ยนได้อย่างไร?

เพื่อยืนยันว่ารหัสผ่านใหม่ทำงานอย่างถูกต้อง ให้ทำตามขั้นตอนต่อไปนี้.

  1. เข้าสู่ MySQL.
    mysql -u root -p
    
  1. หากคุณสามารถเข้าสู่ระบบได้สำเร็จหลังจากใส่รหัสผ่าน การกำหนดค่าถูกต้อง.

  2. เพื่อยืนยัน ให้รันคำสั่ง SQL ต่อไปนี้เพื่อตรวจสอบข้อมูลการยืนยันตัวตน.

    SELECT user, host, authentication_string FROM mysql.user;
    

Q3: ฉันจะเปลี่ยนนโยบายรหัสผ่านอย่างไร?

MySQL บังคับใช้นโยบายรหัสผ่านโดยค่าเริ่มต้น แต่คุณสามารถผ่อนคลายข้อกำหนดได้หากต้องการ.

  1. ตรวจสอบนโยบายรหัสผ่านปัจจุบัน.
    SHOW VARIABLES LIKE 'validate_password%';
    
  1. เพื่อเปลี่ยนนโยบาย ให้รัน:
    SET GLOBAL validate_password.policy = LOW;
    
  1. หากจำเป็น คุณยังสามารถปรับเปลี่ยนการตั้งค่าความยาวขั้นต่ำและความซับซ้อนได้.
    SET GLOBAL validate_password.length = 8;
    

Q4: ฉันไม่พบไฟล์บันทึกที่มีรหัสผ่านเริ่มต้น ควรทำอย่างไร?

หากคุณไม่พบไฟล์บันทึก ให้ลองทำตามขั้นตอนต่อไปนี้.

  1. ตรวจสอบไฟล์กำหนดค่า ( my.cnf หรือ my.ini ) และระบุเส้นทางของ log_error .
  2. หากการกำหนดค่าไม่ถูกต้อง ให้ตั้งค่าตำแหน่งการส่งออกไฟล์บันทึกอย่างชัดเจน.
    [mysqld]
    log_error=/var/log/mysqld.log
    
  1. รีสตาร์ท MySQL เพื่อใช้การเปลี่ยนแปลง.

Q5: จะเกิดอะไรขึ้นหาก MySQL ไม่มีรหัสผ่านเริ่มต้น?

ขึ้นอยู่กับเวอร์ชัน MySQL อาจถูกติดตั้งโดยไม่มีรหัสผ่าน (รหัสผ่านว่าง) ในกรณีนั้น ให้ตั้งรหัสผ่านใหม่โดยทำตามขั้นตอนต่อไปนี้.

  1. เข้าสู่ระบบ MySQL.
    mysql -u root
    
  1. ตั้งรหัสผ่าน.
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewStrongPassword';
    

7. สรุป

รหัสผ่านเริ่มต้นของ MySQL เป็นองค์ประกอบสำคัญในการจัดการฐานข้อมูลของคุณอย่างปลอดภัย ในบทความนี้ เราได้อธิบายวิธีตรวจสอบรหัสผ่านเริ่มต้น วิธีการเปลี่ยนแปลง และวิธีแก้ไขปัญหาที่เกี่ยวข้อง ด้านล่างเป็นสรุปประเด็นสำคัญ.

ประเด็นสำคัญ

  • ความสำคัญของรหัสผ่านเริ่มต้น : เพื่อความปลอดภัย แนะนำอย่างยิ่งให้ตรวจสอบและเปลี่ยนรหัสผ่านทันทีหลังการติดตั้ง.
  • วิธีตรวจสอบ : คุณสามารถตรวจสอบได้ง่ายโดยดูไฟล์บันทึก ( mysqld.log ).
  • วิธีเปลี่ยน : รหัสผ่านเริ่มต้นสามารถเปลี่ยนได้โดยใช้เครื่องมือ mysql_secure_installation หรือโดยการรันคำสั่ง SQL โดยตรง.
  • การแก้ไขปัญหา : หากคุณไม่สามารถยืนยันรหัสผ่านเริ่มต้นได้ คุณสามารถรีเซ็ตได้โดยตรวจสอบการตั้งค่าไฟล์บันทึกหรือใช้โหมดปลอดภัย.
  • FAQ : คำถามที่พบบ่อยเกี่ยวกับรหัสผ่านได้ถูกตอบเพื่อช่วยให้ผู้อ่านแก้ไขปัญหาได้อย่างรวดเร็ว.

ข้อความถึงผู้อ่าน

เมื่อใช้ MySQL การจัดการรหัสผ่านเริ่มต้นอย่างเหมาะสมเป็นสิ่งสำคัญเพื่อ ลดความเสี่ยงด้านความปลอดภัย นอกจากนี้ การเปลี่ยนรหัสผ่านเป็นประจำและปฏิบัติตามนโยบายความปลอดภัยจะช่วยให้การดำเนินงานฐานข้อมูลปลอดภัยและมีประสิทธิภาพ.

ขั้นตอนต่อไป

ใช้บทความนี้เป็นอ้างอิงเพื่อทบทวนการกำหนดค่าเริ่มต้นของ MySQL ของคุณและดำเนินการมาตรการความปลอดภัยที่จำเป็น หากเกิดปัญหา ให้ตรวจสอบขั้นตอนการแก้ไขปัญหาและส่วน FAQ เพื่อเป็นแนวทางในการตอบสนอง.