1. บทนำ
MySQL เป็นระบบจัดการฐานข้อมูลที่ได้รับความนิยมและใช้งานอย่างกว้างขวางในหลายระบบและสภาพแวดล้อมต่าง ๆ การตั้งค่าเริ่มต้นที่สำคัญคือการยืนยันและจัดการรหัสผ่านเริ่มต้นอย่างถูกต้อง หากรหัสผ่านเริ่มต้นไม่ได้รับการจัดการอย่างเหมาะสม อาจทำให้เกิดความเสี่ยงด้านความปลอดภัยหรือปัญหาในการเข้าถึงได้
บทความนี้อธิบายวิธีตรวจสอบรหัสผ่านเริ่มต้นของ MySQL วิธีการเปลี่ยนรหัสผ่าน และวิธีแก้ไขปัญหาต่าง ๆ — ทั้งหมดในรูปแบบที่ผู้เริ่มต้นสามารถเข้าใจได้ง่าย
2. รหัสผ่านเริ่มต้นของ MySQL คืออะไร?
ภาพรวมของรหัสผ่านเริ่มต้น
เมื่อทำการติดตั้ง MySQL ครั้งแรก จะมีการตั้งรหัสผ่านเริ่มต้นให้กับผู้ใช้ผู้ดูแลระบบฐานข้อมูล (โดยทั่วไปคือ “root”) พฤติกรรมของรหัสผ่านนี้จะแตกต่างกันตามเวอร์ชันของ MySQL
ความแตกต่างตามเวอร์ชัน
- MySQL 5.7 และรุ่นต่อไป : รหัสผ่านชั่วคราวจะถูกสร้างโดยอัตโนมัติระหว่างการติดตั้งและบันทึกลงในไฟล์บันทึก
- เวอร์ชันก่อนหน้า : มักจะติดตั้ง MySQL โดยไม่มีรหัสผ่าน (รหัสผ่านว่าง)
ทำไมรหัสผ่านเริ่มต้นจึงสำคัญ
หากรหัสผ่านเริ่มต้นไม่ได้รับการจัดการอย่างเหมาะสม ความเสี่ยงจากการเข้าถึงโดยไม่ได้รับอนุญาตจะเพิ่มขึ้น หลังการติดตั้งจึงควรตรวจสอบรหัสผ่านและเปลี่ยนหากจำเป็นอย่างยิ่ง
3. วิธีตรวจสอบรหัสผ่านเริ่มต้น
สำหรับสภาพแวดล้อม Linux
หากคุณติดตั้ง MySQL บนสภาพแวดล้อม Linux คุณสามารถตรวจสอบรหัสผ่านเริ่มต้นได้โดยทำตามขั้นตอนต่อไปนี้
- เข้าสู่ระบบและเปิดเทอร์มินัล
- รันคำสั่งต่อไปนี้เพื่อดูไฟล์บันทึก
sudo grep 'temporary password' /var/log/mysqld.log
- ในผลลัพธ์ให้ค้นหาบรรทัดที่มีคำว่า “temporary password” รหัสผ่านเริ่มต้นจะปรากฏหลังจากคำนั้น
ตัวอย่าง:
2025-01-22T10:22:33.123456Z 1 [Note] A temporary password is generated for root@localhost: Abc123!@#
สำหรับสภาพแวดล้อม Windows
ในสภาพแวดล้อม Windows คุณต้องตรวจสอบไฟล์ mysqld.log ด้วยตนเอง
- เปิดโฟลเดอร์การติดตั้ง MySQL (โดยทั่วไปคือ
C:\ProgramData\MySQL\MySQL Server X.X) - ค้นหาไฟล์
mysqld.logแล้วเปิดด้วยโปรแกรมแก้ไขข้อความ - ค้นหาคำว่า “temporary password” เช่นเดียวกับวิธีใน Linux
หมายเหตุสำคัญ
- หากรหัสผ่านเริ่มต้นไม่ปรากฏในไฟล์บันทึก ให้ดูส่วนการแก้ไขปัญหาด้านล่างนี้
4. วิธีเปลี่ยนรหัสผ่านเริ่มต้น
การใช้ MySQL ด้วยการกำหนดค่าเริ่มต้นทำให้ความเสี่ยงด้านความปลอดภัยเพิ่มขึ้น ดังนั้นจึงแนะนำให้เปลี่ยนรหัสผ่านเริ่มต้นทันทีหลังการติดตั้ง ด้านล่างนี้เป็นขั้นตอนโดยละเอียดสำหรับการเปลี่ยนรหัสผ่าน
การเปลี่ยนรหัสผ่านด้วยคำสั่ง mysql_secure_installation
mysql_secure_installation เป็นเครื่องมือบรรทัดคำสั่งที่ช่วยกำหนดค่าความปลอดภัยเริ่มต้นของ MySQL การใช้เครื่องมือนี้ทำให้คุณสามารถเพิ่มความปลอดภัยรวมถึงการเปลี่ยนรหัสผ่านเริ่มต้นได้ในขั้นตอนเดียว
- เปิดเทอร์มินัลหรือ command prompt แล้วรันคำสั่งต่อไปนี้
sudo mysql_secure_installation
- ระบบจะขอให้คุณใส่รหัสผ่านเริ่มต้น ใส่รหัสผ่านที่คุณยืนยันระหว่างการติดตั้ง
- คุณจะเห็นตัวเลือกในการกำหนดนโยบายรหัสผ่าน เลือกความแข็งแรงที่เหมาะสม (แนะนำให้ใช้รหัสผ่านที่แข็งแรง)
- ใส่รหัสผ่านใหม่ แล้วพิมพ์ซ้ำเพื่อยืนยัน
- ทำตามคำแนะนำเพื่อกำหนดค่าการรักษาความปลอดภัยเพิ่มเติม (เช่น การลบผู้ใช้แบบไม่ระบุตัวตนและการปิดการเข้าสู่ระบบ root จากระยะไกล)
การเปลี่ยนรหัสผ่านด้วยตนเอง
คุณยังสามารถเปลี่ยนรหัสผ่านโดยตรงด้วย SQL จากบรรทัดคำสั่งได้
- เข้าสู่ระบบ MySQL
mysql -u root -p
- รันคำสั่ง SQL เพื่อเปลี่ยนรหัสผ่าน
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewStrongPassword';
※ แทนที่ NewStrongPassword ด้วยรหัสผ่านที่ปลอดภัย
- ใช้คำสั่งต่อไปนี้เพื่อบังคับให้การเปลี่ยนแปลงมีผล
FLUSH PRIVILEGES;
- ออกจาก MySQL
exit
การตั้งค่านโยบายและความแข็งแรงของรหัสผ่าน
ในบางกรณี MySQL จะเปิดใช้นโยบายรหัสผ่านโดยค่าเริ่มต้น นโยบายนี้ป้องกันการใช้รหัสผ่านที่อ่อนแอเพื่อเพิ่มความปลอดภัย
- เพื่อตรวจสอบนโยบายปัจจุบัน ให้รัน:
SHOW VARIABLES LIKE 'validate_password%';
- เพื่อลดความเข้มของนโยบาย ให้แก้ไขการตั้งค่าต่อไปนี้:
SET GLOBAL validate_password.policy=LOW;
หมายเหตุสำคัญ
- หลังจากเปลี่ยนรหัสผ่าน คุณอาจไม่สามารถเข้าถึง MySQL ได้ ในกรณีนั้นให้ตรวจสอบไฟล์การกำหนดค่าและการตั้งค่าการเชื่อมต่อ.
- การเลือกใช้รหัสผ่านที่แข็งแรงจะลดความเสี่ยงของการเข้าถึงโดยไม่ได้รับอนุญาตอย่างมาก.
5. ควรทำอย่างไรหากไม่สามารถยืนยันรหัสผ่านเริ่มต้นได้
หากคุณไม่สามารถยืนยันรหัสผ่านเริ่มต้นของ MySQL ได้ อาจมีปัญหาเกี่ยวกับการกำหนดค่าไฟล์บันทึกหรือขั้นตอนการทำงาน ส่วนนี้จะอธิบายสาเหตุที่เป็นไปได้และวิธีแก้ไขเฉพาะ
หากรหัสผ่านเริ่มต้นไม่ได้แสดงในบันทึก
ใน MySQL 5.7 ขึ้นไป รหัสผ่านเริ่มต้นจะถูกบันทึกลงในไฟล์บันทึก อย่างไรก็ตาม ขึ้นอยู่กับการกำหนดค่าหรือสภาพแวดล้อม อาจไม่ได้บันทึกไว้
จุดที่ต้องตรวจสอบ
- ตำแหน่งไฟล์บันทึก : เส้นทางเริ่มต้นของไฟล์บันทึก MySQL มีดังนี้.
- Linux :
/var/log/mysqld.log - Windows :
C:\ProgramData\MySQL\MySQL Server X.X\mysqld.logตรวจสอบไฟล์การกำหนดค่า (my.cnfหรือmy.ini) เพื่อให้แน่ใจว่าตำแหน่งการส่งออกบันทึกไม่ได้ถูกเปลี่ยนแปลง.
- การตั้งค่าระดับบันทึก : หากระดับบันทึกของ MySQL ไม่ได้กำหนดอย่างถูกต้อง รหัสผ่านเริ่มต้นอาจไม่ถูกบันทึก แก้ไขไฟล์
my.cnfและเพิ่มหรือยืนยันการตั้งค่าต่อไปนี้.[mysqld] log_error=/var/log/mysqld.log
วิธีรีเซ็ตรหัสผ่านหากไม่ทราบ
หากรหัสผ่านไม่ปรากฏในบันทึกหรือคุณสูญเสียรหัสผ่านเริ่มต้น คุณสามารถรีเซ็ตได้โดยใช้ขั้นตอนต่อไปนี้.
ขั้นตอน:
- เริ่ม MySQL ในโหมดปลอดภัย : โหมดปลอดภัยทำให้คุณสามารถเข้าถึง MySQL โดยไม่ต้องยืนยันตัวตน.
sudo systemctl stop mysqld sudo mysqld_safe --skip-grant-tables &
- เข้าสู่ระบบ MySQL : เข้าถึง MySQL โดยไม่ต้องยืนยันตัวตน.
mysql -u root
- รีเซ็ตรหัสผ่าน : รันคำสั่ง SQL เพื่อรีเซ็ตรหัสผ่าน.
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewStrongPassword';
※ แทนที่ NewStrongPassword ด้วยรหัสผ่านที่ปลอดภัย.
- นำการเปลี่ยนแปลงไปใช้ :
FLUSH PRIVILEGES;
- รีสตาร์ท MySQL : ออกจากโหมดปลอดภัยและรีสตาร์ท MySQL ในโหมดปกติ.
sudo systemctl restart mysqld
หากปัญหาไม่ได้รับการแก้ไข
หากปัญหาไม่ได้รับการแก้ไขด้วยขั้นตอนข้างต้น ให้พิจารณาตัวเลือกต่อไปนี้.
- ติดตั้ง MySQL ใหม่ : หากฐานข้อมูลยังไม่ได้ใช้งาน คุณอาจติดตั้ง MySQL ใหม่เพื่อคืนสภาพเป็นเริ่มต้น.
- ปรึกษาเอกสารหรือการสนับสนุนอย่างเป็นทางการ : หากมีข้อความแสดงข้อผิดพลาดเฉพาะ ให้อ้างอิงเอกสารหรือฟอรั่มของ MySQL อย่างเป็นทางการ.

6. คำถามที่พบบ่อย
ต่อไปนี้คือคำถามที่พบบ่อยและคำตอบเกี่ยวกับรหัสผ่านเริ่มต้นของ MySQL ให้ดูส่วนนี้เพื่อแก้ไขข้อสงสัยหรือปัญหาอย่างรวดเร็ว.
Q1: ควรทำอย่างไรหากลืมรหัสผ่านเริ่มต้น?
หากคุณลืมรหัสผ่านเริ่มต้น คุณสามารถรีเซ็ตได้โดยทำตามขั้นตอนต่อไปนี้.
- หยุด MySQL.
sudo systemctl stop mysqld
- เริ่ม MySQL ในโหมดปลอดภัย.
sudo mysqld_safe --skip-grant-tables &
- เข้าสู่ MySQL และตั้งรหัสผ่านใหม่.
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewStrongPassword'; FLUSH PRIVILEGES;
- รีสตาร์ท MySQL เพื่อกลับสู่โหมดปกติ.
sudo systemctl restart mysqld
Q2: ฉันจะตรวจสอบรหัสผ่านหลังจากเปลี่ยนได้อย่างไร?
เพื่อยืนยันว่ารหัสผ่านใหม่ทำงานอย่างถูกต้อง ให้ทำตามขั้นตอนต่อไปนี้.
- เข้าสู่ MySQL.
mysql -u root -p
หากคุณสามารถเข้าสู่ระบบได้สำเร็จหลังจากใส่รหัสผ่าน การกำหนดค่าถูกต้อง.
เพื่อยืนยัน ให้รันคำสั่ง SQL ต่อไปนี้เพื่อตรวจสอบข้อมูลการยืนยันตัวตน.
SELECT user, host, authentication_string FROM mysql.user;
Q3: ฉันจะเปลี่ยนนโยบายรหัสผ่านอย่างไร?
MySQL บังคับใช้นโยบายรหัสผ่านโดยค่าเริ่มต้น แต่คุณสามารถผ่อนคลายข้อกำหนดได้หากต้องการ.
- ตรวจสอบนโยบายรหัสผ่านปัจจุบัน.
SHOW VARIABLES LIKE 'validate_password%';
- เพื่อเปลี่ยนนโยบาย ให้รัน:
SET GLOBAL validate_password.policy = LOW;
- หากจำเป็น คุณยังสามารถปรับเปลี่ยนการตั้งค่าความยาวขั้นต่ำและความซับซ้อนได้.
SET GLOBAL validate_password.length = 8;
Q4: ฉันไม่พบไฟล์บันทึกที่มีรหัสผ่านเริ่มต้น ควรทำอย่างไร?
หากคุณไม่พบไฟล์บันทึก ให้ลองทำตามขั้นตอนต่อไปนี้.
- ตรวจสอบไฟล์กำหนดค่า (
my.cnfหรือmy.ini) และระบุเส้นทางของlog_error. - หากการกำหนดค่าไม่ถูกต้อง ให้ตั้งค่าตำแหน่งการส่งออกไฟล์บันทึกอย่างชัดเจน.
[mysqld] log_error=/var/log/mysqld.log
- รีสตาร์ท MySQL เพื่อใช้การเปลี่ยนแปลง.
Q5: จะเกิดอะไรขึ้นหาก MySQL ไม่มีรหัสผ่านเริ่มต้น?
ขึ้นอยู่กับเวอร์ชัน MySQL อาจถูกติดตั้งโดยไม่มีรหัสผ่าน (รหัสผ่านว่าง) ในกรณีนั้น ให้ตั้งรหัสผ่านใหม่โดยทำตามขั้นตอนต่อไปนี้.
- เข้าสู่ระบบ MySQL.
mysql -u root
- ตั้งรหัสผ่าน.
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewStrongPassword';
7. สรุป
รหัสผ่านเริ่มต้นของ MySQL เป็นองค์ประกอบสำคัญในการจัดการฐานข้อมูลของคุณอย่างปลอดภัย ในบทความนี้ เราได้อธิบายวิธีตรวจสอบรหัสผ่านเริ่มต้น วิธีการเปลี่ยนแปลง และวิธีแก้ไขปัญหาที่เกี่ยวข้อง ด้านล่างเป็นสรุปประเด็นสำคัญ.
ประเด็นสำคัญ
- ความสำคัญของรหัสผ่านเริ่มต้น : เพื่อความปลอดภัย แนะนำอย่างยิ่งให้ตรวจสอบและเปลี่ยนรหัสผ่านทันทีหลังการติดตั้ง.
- วิธีตรวจสอบ : คุณสามารถตรวจสอบได้ง่ายโดยดูไฟล์บันทึก (
mysqld.log). - วิธีเปลี่ยน : รหัสผ่านเริ่มต้นสามารถเปลี่ยนได้โดยใช้เครื่องมือ
mysql_secure_installationหรือโดยการรันคำสั่ง SQL โดยตรง. - การแก้ไขปัญหา : หากคุณไม่สามารถยืนยันรหัสผ่านเริ่มต้นได้ คุณสามารถรีเซ็ตได้โดยตรวจสอบการตั้งค่าไฟล์บันทึกหรือใช้โหมดปลอดภัย.
- FAQ : คำถามที่พบบ่อยเกี่ยวกับรหัสผ่านได้ถูกตอบเพื่อช่วยให้ผู้อ่านแก้ไขปัญหาได้อย่างรวดเร็ว.
ข้อความถึงผู้อ่าน
เมื่อใช้ MySQL การจัดการรหัสผ่านเริ่มต้นอย่างเหมาะสมเป็นสิ่งสำคัญเพื่อ ลดความเสี่ยงด้านความปลอดภัย นอกจากนี้ การเปลี่ยนรหัสผ่านเป็นประจำและปฏิบัติตามนโยบายความปลอดภัยจะช่วยให้การดำเนินงานฐานข้อมูลปลอดภัยและมีประสิทธิภาพ.
ขั้นตอนต่อไป
ใช้บทความนี้เป็นอ้างอิงเพื่อทบทวนการกำหนดค่าเริ่มต้นของ MySQL ของคุณและดำเนินการมาตรการความปลอดภัยที่จำเป็น หากเกิดปัญหา ให้ตรวจสอบขั้นตอนการแก้ไขปัญหาและส่วน FAQ เพื่อเป็นแนวทางในการตอบสนอง.


