ฉันเพิ่งติดตั้งเซิร์ฟเวอร์อูบุนตูสดพร้อม mysql (percona 5.5) แต่มันปฏิเสธที่จะยอมรับการเชื่อมต่อจากโฮสต์ระยะไกล
นี่คือสิ่งที่เกิดขึ้นถ้าฉันพยายามเชื่อมต่อกับเซิร์ฟเวอร์นี้จากระยะไกล:
mysql -h10.0.0.2 -uroot -pmypassowrd
ERROR 2003 (HY000): Can't connect to MySQL server on '10.0.0.2' (111)
telnet 10.0.0.2 3306
Trying 10.0.0.2...
telnet: Unable to connect to remote host: Connection refused
เมื่อฉันตรวจสอบว่า mysql ฟังการเชื่อมต่อระยะไกลฉันเห็นสิ่งนี้:
sudo netstat -ntlup | grep mysql
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 127018/mysqld
อย่างที่คุณเห็นมันพูดว่า127.0.0.1:3306
ซึ่งหมายความว่า "ฉันยอมรับการเชื่อมต่อในท้องถิ่นเท่านั้น"
ฉันตรวจสอบตัวแปรskip_networking
และของฉันbind-address
- ทุกอย่างถูกปิด:
mysql> show variables like '%skip_networking%';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| skip_networking | OFF |
+-----------------+-------+
1 row in set (0.00 sec)
mysql> show variables like '%bind%';
Empty set (0.00 sec)
ฉันมีเซิร์ฟเวอร์อื่นที่มีการกำหนดค่าเดียวกันและใช้งานได้ดี:
sudo netstat -ntlup | grep mysql
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 2431/mysqld
อะไรคือสาเหตุของสิ่งนี้ ฉันจะทำให้ mysql ตอบสนองต่อการเชื่อมต่อระยะไกลได้อย่างไร
bind_address
นั้นมีให้บริการตั้งแต่รุ่น 5.6 ( bugs.mysql.com/bug.php?id=44355 ) ดังนั้นมันจะส่งคืนชุดว่างใน v5.5 แม้ว่าจะตั้งค่าไว้ก็ตาม