[英]Can't connect to database from a remote server after setting it up to allow connections
我试图允许到我的一个mysql数据库的远程连接,但是设置完所有内容后,我总是收到超时错误。 你能告诉我我是否错过了一步?
我正在使用MySQL 5.5.38-0运行Ubuntu 12.04
这是我的/etc/mysql/my.cnf
文件
[mysqld]
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
lc-messages-dir = /usr/share/mysql
# skip-external-locking
bind-address = 0.0.0.0
更新my.cnf文件后,我重新启动了MySQL,然后运行以下命令打开TCP端口3306
sudo /sbin/iptables -A INPUT -i eth0 -p tcp --destination-port 3306 -j ACCEPT
然后使用以下命令保存新规则:
sudo /sbin/iptables-save
我在运行sudo iptables -L
时可以看到它
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT tcp -- anywhere anywhere tcp dpt:ssh
ACCEPT tcp -- anywhere anywhere tcp dpt:http
DROP udp -- anywhere anywhere udp spt:bootps
LOG all -- anywhere anywhere LOG level warning prefix "INPUT__"
DROP all -- anywhere anywhere
ACCEPT tcp -- anywhere anywhere tcp dpt:mysql
然后,我创建了一个测试数据库:
> create database kentest;
从任何主机授予它所有特权:
> GRANT ALL ON kentest.* TO kentest@'%' IDENTIFIED BY 'mypassword';
并刷新了特权:
> flush privileges
但是当我尝试从另一个盒子连接时:
$ mysql -u kentest -h x.x.x.x -p
我收到超时消息:
ERROR 2003 (HY000): Can't connect to MySQL server on 'x.x.x.x' (60)
我确实注意到我在运行时看不到正在使用的端口
$ lsof -i -P | grep :3306
有什么想法我可能做错或遗漏了吗?
谢谢!
我能够找出问题所在。 我们将CSF用于防火墙,需要将IP添加到:
sudo vi /etc/csf/csf.allow
然后重新启动CSF:
$ csf --restart
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.