我刚刚用mysql(percona 5.5)安装了新的ubuntu服务器,但是它拒绝接受来自远程主机的连接
如果我尝试远程连接到此服务器,将会发生以下情况:
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中设置了变量,它也将返回一个空集。