ฉันติดตั้งเซิร์ฟเวอร์ MySQL บนเครื่อง Ubuntu ระยะไกลแล้ว root
ผู้ใช้จะถูกกำหนดไว้ในmysql.user
ตารางด้วยวิธีนี้:
mysql> SELECT host, user, password FROM user WHERE user = 'root';
+------------------+------+-------------------------------------------+
| host | user | password |
+------------------+------+-------------------------------------------+
| localhost | root | *xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
| ip-10-48-110-188 | root | *xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
| 127.0.0.1 | root | *xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
| ::1 | root | *xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
+------------------+------+-------------------------------------------+
ฉันสามารถเข้าถึงกับผู้ใช้root
จากอินเทอร์เฟซบรรทัดคำสั่งเครื่องระยะไกลเดียวกันโดยใช้mysql
ไคลเอนต์มาตรฐาน ตอนนี้ฉันต้องการอนุญาตการเข้าถึงรูทจากทุกโฮสต์บนอินเทอร์เน็ตดังนั้นฉันจึงลองเพิ่มแถวต่อไปนี้ (ซึ่งเป็นสำเนาที่แน่นอนของแถวแรกจากการถ่ายโอนข้อมูลก่อนหน้านี้ยกเว้นhost
คอลัมน์):
mysql> SELECT host, user, password FROM user WHERE host = '%';
+------------------+------+-------------------------------------------+
| host | user | password |
+------------------+------+-------------------------------------------+
| % | root | *xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
+------------------+------+-------------------------------------------+
แต่ลูกค้าของฉันบนพีซีส่วนตัวของฉันยังคงบอกฉัน (ฉันบดบัง IP ของเซิร์ฟเวอร์):
ข้อผิดพลาดของ SQL (2003): ไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์ MySQL ใน '46 .xxx '(10061)
ฉันไม่สามารถบอกได้ว่าเป็นข้อผิดพลาดการรับรองความถูกต้องหรือข้อผิดพลาดเครือข่าย บนไฟร์วอลล์ของเซิร์ฟเวอร์ฉันเปิดใช้งานพอร์ต3306 / TCPเป็น0.0.0.0/0และนั่นก็ใช้ได้สำหรับฉัน ...
bind-address
ใน my.cnf