วิธีแก้ไขข้อผิดพลาด MySQL 1251: ไคลเอนต์ไม่รองรับโปรโตคอลการตรวจสอบสิทธิ์

เผยแพร่แล้ว: 2024-03-28

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

เป็นเรื่องปกติมากขึ้นหลังจากที่ MySQL เวอร์ชัน 5.7.5 และรุ่นต่อๆ มาได้เปลี่ยนโปรโตคอลความปลอดภัย หากแอปพลิเคชันของคุณไม่ได้รับการอัพเดต คุณจะพบกับข้อผิดพลาด MySQL 1251: ไคลเอ็นต์ไม่รองรับข้อความโปรโตคอลการตรวจสอบสิทธิ์ อย่างไรก็ตาม ด้วยแนวทางเชิงกลยุทธ์ คุณสามารถแก้ไขข้อผิดพลาดนี้ได้อย่างง่ายดาย

ในบทความนี้ เราจะเรียนรู้เพิ่มเติมเกี่ยวกับข้อผิดพลาด MySQL 1251 สาเหตุที่เกิดขึ้น และวิธีแก้ไขที่คุณสามารถใช้เพื่อแก้ไขข้อผิดพลาด

ข้อผิดพลาด MySQL 1251 เกิดขึ้นเมื่อใด

เริ่มต้นด้วยข้อความแสดงข้อผิดพลาดโดยทั่วไปจะมีลักษณะดังนี้:“1251 – mysql_connect(): ไคลเอนต์ไม่รองรับโปรโตคอลการตรวจสอบสิทธิ์ที่ร้องขอโดยเซิร์ฟเวอร์พิจารณาอัปเกรดไคลเอนต์ MySQL”

ข้อผิดพลาด MySQL 1251: ไคลเอนต์ไม่รองรับโปรโตคอลการตรวจสอบสิทธิ์

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

การใช้ซอฟต์แวร์ไคลเอนต์หรือไลบรารีรุ่นเก่า: หากคุณใช้ไคลเอนต์หรือไลบรารี MySQL เวอร์ชันเก่า การพยายามเชื่อมต่อกับเซิร์ฟเวอร์ที่ใหม่กว่าและปลอดภัยยิ่งขึ้นอาจทำให้เกิดข้อผิดพลาด 1251

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

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

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

เหตุใดข้อผิดพลาด MySQL 1251 จึงเกิดขึ้น

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

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

การปรับปรุงการเข้ารหัสรหัสผ่าน: เนื่องจากภัยคุกคามทางไซเบอร์มีการพัฒนาอย่างต่อเนื่อง MySQL จึงตอบสนองด้วยการเสริมความแข็งแกร่งให้กับวิธีการเข้ารหัสรหัสผ่านในรุ่นล่าสุดนี่เป็นวิธีที่ดีสำหรับการรักษาความปลอดภัย แต่อาจทำให้เกิดปัญหากับลูกค้าที่ไม่รู้ตัวได้ หากซอฟต์แวร์ไคลเอนต์ของคุณไม่ได้รับการอัพเดต คุณอาจได้รับข้อความ “ไคลเอนต์ไม่รองรับโปรโตคอลการตรวจสอบสิทธิ์”

ข้อผิดพลาดในการกำหนดค่า: การกำหนดค่าไม่ถูกต้องบนเซิร์ฟเวอร์ MySQL หรือฝั่งไคลเอ็นต์ เช่น การใช้ปลั๊กอินการตรวจสอบสิทธิ์ที่เข้ากันไม่ได้ อาจทำให้เกิดความล้มเหลวเมื่อพยายามเชื่อมต่อ

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

จะแก้ไขข้อผิดพลาด MySQL 1251 ได้อย่างไร

ขึ้นอยู่กับเหตุผลที่คุณได้รับข้อความ การแก้ไขข้อผิดพลาด “1251 – mysql_connect(): ไคลเอนต์ไม่รองรับโปรโตคอลการตรวจสอบสิทธิ์ที่ร้องขอโดยเซิร์ฟเวอร์” สามารถทำได้ด้วยวิธีการสองสามวิธี

ขอหารือ.

อัปเดตซอฟต์แวร์ไคลเอ็นต์ของคุณ

สิ่งแรกที่ต้องทำคือตั้งค่าเวอร์ชันที่รองรับโปรโตคอลการตรวจสอบสิทธิ์ที่ใหม่กว่า

  1. เปิดเทอร์มินัลหรือพรอมต์คำสั่งของคุณ รันคำสั่ง ` mysql –version ` เพื่อระบุเวอร์ชันของไคลเอ็นต์ MySQL ของคุณ
  2. หากต้องการตรวจสอบเวอร์ชันล่าสุดของ MySQL โปรดไปที่ หน้าดาวน์โหลด MySQL อย่างเป็นทางการ → ดาวน์โหลด MySQL ภายใต้ส่วน “การดาวน์โหลดชุมชน MySQL (GPL)” ให้ค้นหาเซิร์ฟเวอร์ชุมชน MySQL ซึ่งรวมถึงเครื่องมือไคลเอนต์
  3. เลือกเวอร์ชันที่ตรงกับระบบปฏิบัติการของคุณ (Windows, Linux, macOS ฯลฯ)
  4. ดาวน์โหลดและติดตั้ง

ปรับการตั้งค่าการตรวจสอบสิทธิ์เซิร์ฟเวอร์ MySQL

บนเซิร์ฟเวอร์ MySQL ของคุณ ให้ดำเนินการคำสั่ง SQL ต่อไปนี้สำหรับบัญชีผู้ใช้ที่ประสบปัญหา:

 เปลี่ยนผู้ใช้ 'ชื่อผู้ใช้ของคุณ' @ 'localhost' ที่ระบุด้วย mysql_native_password โดย 'รหัสผ่านของคุณ';

แทนที่ ` yourusername ` และ ` yourpassword ` ด้วยชื่อผู้ใช้และรหัสผ่านจริงของคุณ ซึ่งจะสั่งให้เซิร์ฟเวอร์ใช้ปลั๊กอิน ` mysql_native_password ` สำหรับบัญชีนี้

แก้ไขไฟล์การกำหนดค่า MySQL

  1. ค้นหาและแก้ไขไฟล์ ` my.cnf ` (Linux/Unix) หรือ ` my.ini ` (Windows) บนเซิร์ฟเวอร์ของคุณ
  2. ใต้ส่วน ` [mysqld] ` ให้เพิ่ม:
 default_authentication_plugin=mysql_native_password

หรือหากคุณต้องการใช้วิธีการเข้ารหัสรหัสผ่านแบบเก่า ให้เพิ่ม:

 old_password=1

วิธีนี้มีความปลอดภัยน้อยกว่าและถือได้ว่าเป็นวิธีแก้ปัญหาชั่วคราว

คอมไพล์ PHP ใหม่ (ถ้ามี)

หากสภาพแวดล้อมของคุณเป็นแบบ PHP และคุณพบข้อผิดพลาดนี้ การคอมไพล์ PHP ใหม่ด้วยไลบรารี MySQL ล่าสุดจะช่วยให้มั่นใจได้ว่าทั้งสองระบบสามารถสื่อสารได้อย่างมีประสิทธิภาพ จุดประสงค์คือเพื่อให้แน่ใจว่า PHP เข้ากันได้กับ MySQL

เริ่มบริการใหม่

  1. รีสตาร์ทเซิร์ฟเวอร์ Apache โดยทั่วไปสามารถทำได้ผ่านแผงควบคุมของคุณหรือผ่านทางบรรทัดคำสั่ง (ปรับคำสั่งตามระบบปฏิบัติการและซอฟต์แวร์เว็บเซิร์ฟเวอร์ของคุณ) โดยใช้:
 sudo service apache2 รีสตาร์ท

2. เริ่มบริการ MySQL ใหม่ สามารถทำได้ผ่านบรรทัดนี้ (ปรับตามการตั้งค่าเซิร์ฟเวอร์ของคุณ):

 บริการ sudo mysql รีสตาร์ท

ตรวจสอบการเปลี่ยนแปลง

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

คำพูดสุดท้าย

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

ข้อผิดพลาดนี้กลายเป็นข้อผิดพลาดทั่วไปหลังจากที่ MySQL ได้รับโปรโตคอลการตรวจสอบความถูกต้องที่ปลอดภัย โดยเฉพาะตั้งแต่เวอร์ชัน 5.7.5 เป็นต้นไป

การแก้ไขข้อผิดพลาด MySQL 1251 ได้สำเร็จจะคืนค่าการโต้ตอบกับฐานข้อมูลของคุณและปรับปรุงมาตรการรักษาความปลอดภัยของระบบของคุณ

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