วิธีแก้ไขข้อผิดพลาด 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 หากมีข้อสงสัยใด ๆ ติดต่อเราผ่านแบบฟอร์มข้อเสนอแนะด้านล่าง