ค้นหาเว็บไซต์

วิธีแก้ไข "MySQL ERROR 1819 (HY000):" ใน Linux


เมื่อสร้างผู้ใช้ MySQL ด้วยรหัสผ่านที่ค่อนข้างอ่อนแอ คุณอาจพบข้อผิดพลาด 'MySQL ERROR 1819 (HY000): รหัสผ่านของคุณไม่เป็นไปตามข้อกำหนดของนโยบายปัจจุบัน' ในทางเทคนิคแล้ว นี่ไม่ใช่ข้อผิดพลาด แต่เป็นการแจ้งเตือนว่าคุณกำลังใช้รหัสผ่านที่ไม่ตรงตามข้อกำหนดนโยบายรหัสผ่านที่แนะนำ

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

ตัวอย่างเช่น ฉันพบข้อผิดพลาดขณะสร้างผู้ใช้ตามที่แสดง

mysql> create user ‘tecmint’@’localhost’ IDENTIFIED BY ‘mypassword’;

ไม่ใช่เรื่องง่ายเลยที่รหัสผ่านนั้นอ่อนแอมากและอาจมีความเสี่ยงด้านความปลอดภัยได้

วิธีแก้ไขข้อผิดพลาด MySQL 1819 (HY000) ใน Linux

ฐานข้อมูล MySQL มาพร้อมกับปลั๊กอิน validate_password ซึ่งเมื่อเปิดใช้งาน จะบังคับใช้นโยบายการตรวจสอบรหัสผ่าน นโยบายการตรวจสอบรหัสผ่านมี 3 ระดับที่บังคับใช้โดยปลั๊กอิน

  • ต่ำ: อนุญาตให้ผู้ใช้ตั้งรหัสผ่านที่มีความยาว 8 อักขระหรือน้อยกว่า
  • ปานกลาง: อนุญาตให้ผู้ใช้ตั้งรหัสผ่านที่มีความยาว 8 ตัวอักษรหรือน้อยกว่านั้น โดยมีทั้งตัวพิมพ์เล็กและตัวอักขระพิเศษ
  • แข็งแกร่ง: อนุญาตให้ผู้ใช้ตั้งรหัสผ่านที่มีคุณสมบัติทั้งหมดของรหัสผ่านระดับกลางพร้อมไฟล์พจนานุกรม

ตามค่าเริ่มต้น นโยบายรหัสผ่านจะถูกตั้งค่าเป็น ปานกลาง คุณสามารถยืนยันระดับนโยบายรหัสผ่านได้โดยดำเนินการคำสั่ง:

SHOW VARIABLES LIKE 'validate_password%';

หากคุณรันคำสั่งและได้รับชุดเอาต์พุตว่าง แสดงว่าปลั๊กอินยังไม่ได้เปิดใช้งาน

หากต้องการเปิดใช้งานปลั๊กอิน validate_password ให้รันคำสั่งด้านล่าง

mysql> select plugin_name, plugin_status from information_schema.plugins where plugin_name like 'validate%';
mysql> install plugin validate_password soname 'validate_password.so';

เพื่อยืนยันว่าเปิดใช้งานปลั๊กอินแล้ว ให้รันคำสั่ง

mysql> select plugin_name, plugin_status from information_schema.plugins where plugin_name like 'validate%';

คุณควรได้ผลลัพธ์ที่แสดงด้านล่าง:

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

อย่างไรก็ตาม หากคุณยังคงยืนกรานที่จะทำตามวิธีของคุณ นี่คือสิ่งที่คุณสามารถทำได้

วิธีการเปลี่ยนนโยบายการตรวจสอบรหัสผ่าน MySQL

หากต้องการแก้ไขข้อผิดพลาด MySQL ERROR 1819 (HY000) ให้ตั้งค่านโยบายการตรวจสอบรหัสผ่านให้ต่ำลงดังที่แสดง

mysql> SET GLOBAL validate_password_policy=LOW;
OR
mysql> SET GLOBAL validate_password_policy=0;

หลังจากนั้นคุณสามารถยืนยันระดับนโยบายการตรวจสอบรหัสผ่านได้

SHOW VARIABLES LIKE 'validate_password%';

ตอนนี้คุณสามารถดำเนินการต่อและกำหนดรหัสผ่านที่ค่อนข้างอ่อนแอได้ตามที่คุณต้องการ

mysql> create user ‘tecmint’@’localhost’ IDENTIFIED BY ‘mypassword’;

หากต้องการเปลี่ยนกลับไปเป็นระดับนโยบายรหัสผ่าน "ปานกลาง" เพียงเรียกใช้คำสั่ง:

mysql> SET GLOBAL validate_password_policy=MEDIUM;
บทสรุป

โดยส่วนตัวแล้ว ฉันไม่แนะนำให้ตั้งค่านโยบายรหัสผ่านระดับต่ำลงด้วยเหตุผลที่ชัดเจน ไม่ว่าจะเป็นผู้ใช้ทั่วไปหรือผู้ใช้ฐานข้อมูล ขอแนะนำให้ตั้งรหัสผ่าน MySQL ที่รัดกุมเสมอด้วยอักขระมากกว่า 8 ตัว โดยประกอบด้วยอักขระตัวพิมพ์ใหญ่ ตัวพิมพ์เล็ก ตัวเลข และอักขระพิเศษผสมกัน

คู่มือนี้มีไว้เพื่อประโยชน์ของผู้ที่ต้องการทราบวิธีแก้ไขข้อผิดพลาดดังกล่าว ไม่เช่นนั้น แนะนำให้ตั้งรหัสผ่านที่รัดกุมเสมอ