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

วิธีแก้ไขข้อผิดพลาด 1130 (HY000): โฮสต์ไม่ได้รับอนุญาตให้เชื่อมต่อกับเซิร์ฟเวอร์ MySQL นี้


ในบทความฉบับย่อนี้ คุณจะได้เรียนรู้วิธีแก้ไขข้อผิดพลาด “ข้อผิดพลาด 1130 (HY000): โฮสต์ x.x.x.x ไม่ได้รับอนุญาตให้เชื่อมต่อกับเซิร์ฟเวอร์ MySQL นี้ ” ในการปรับใช้ฐานข้อมูล MySQL/MariaDB บนระบบ Linux นี่เป็นหนึ่งในข้อผิดพลาดการเชื่อมต่อฐานข้อมูลระยะไกลทั่วไปที่ผู้ใช้พบ

สภาพแวดล้อมการทดสอบ:

  • ไอพีเซิร์ฟเวอร์แอปพลิเคชัน: 10.24.96.5
  • ไอพีเซิร์ฟเวอร์ฐานข้อมูล: 10.24.96.6

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

mysql -u database_username -p -h 10.24.96.6

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

บนเซิร์ฟเวอร์ฐานข้อมูล เราต้องตรวจสอบโฮสต์ที่ผู้ใช้ด้านบนได้รับอนุญาตให้เชื่อมต่อ

mysql -u root -p

รันคำสั่ง SQL ต่อไปนี้เพื่อตรวจสอบโฮสต์ของผู้ใช้:

MariaDB [(none)]> SELECT host FROM mysql.user WHERE user = "database_username";

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

เรียกใช้คำสั่ง GRANT ต่อไปนี้เพื่อเปิดใช้งานการเข้าถึง MySQL สำหรับผู้ใช้ระยะไกลจากโฮสต์ระยะไกล ตรวจสอบให้แน่ใจว่าได้แทนที่ “10.24.96.6 ” ด้วยที่อยู่ IP ของระบบระยะไกล และ “database_password ” เป็นรหัสผ่านที่คุณต้องการ “database_username ” เพื่อใช้:

MariaDB [(none)]> GRANT ALL ON database_name.* to 'database_username'@'10.24.96.5' IDENTIFIED BY 'database_password';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> SELECT host FROM mysql.user WHERE user = "database_username";

หากต้องการให้ผู้ใช้เข้าถึงระยะไกลจากโฮสต์ทั้งหมดบนเครือข่าย ให้ใช้ไวยากรณ์ด้านล่าง:

MariaDB [(none)]> GRANT ALL ON database_name.* to 'database_username'@'10.24.96.%' IDENTIFIED BY 'database_password';

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

mysql -u database_username -p -h 10.24.96.6

เราหวังว่าโซลูชันนี้จะช่วยคุณในการแก้ไขข้อผิดพลาดการเชื่อมต่อระยะไกล Mysql หากมีข้อสงสัยใด ๆ ติดต่อเราผ่านแบบฟอร์มข้อเสนอแนะด้านล่าง