Tôi vừa cài đặt một máy chủ Ubuntu mới với mysql (percona 5.5), nhưng nó từ chối chấp nhận các kết nối từ các máy chủ từ xa
Đây là những gì xảy ra nếu tôi cố gắng kết nối với máy chủ này từ xa:
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
Khi tôi kiểm tra xem mysql có nghe các kết nối từ xa không, tôi thấy điều này:
sudo netstat -ntlup | grep mysql
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 127018/mysqld
Như bạn có thể thấy nó 127.0.0.1:3306
có nghĩa là "Tôi chỉ chấp nhận các kết nối cục bộ".
Tôi đã kiểm tra các biến skip_networking
và bind-address
biến của mình - mọi thứ đều bị tắt:
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)
Tôi có một máy chủ khác với cấu hình hoàn toàn giống nhau và nó hoạt động rất tốt:
sudo netstat -ntlup | grep mysql
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 2431/mysqld
Điều gì có thể là lý do cho điều này? Làm thế nào để tôi làm cho mysql đáp ứng với các kết nối từ xa?
bind_address
chỉ khả dụng kể từ phiên bản 5.6 ( bug.mysql.com/orms.php?id=44355 ), vì vậy nó sẽ trả về một tập hợp trống trong v5.5 ngay cả khi nó được đặt.