尝试在mySQL工作台上连接到我的虚拟MySQL服务器(VirtualBox Fedora 25)。
我正在使用root用户,是的,我知道这不是最安全的,但对于我的testing,这是好的。
网上有很多关于这方面的信息,但是我读的所有东西都不适合我。
在安装mySQL期间,我允许远程连接到root用户。
所以我已经授予root用户所有权限:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'my_password';
之后,我冲洗了PRIVILEGES
我给我加了一条线
# vi /etc/my.cnf bind-address=0.0.0.0
我也开了一个端口
shell> iptables -A INPUT -m conntrack --ctstate NEW -m tcp -p tcp --dport 3306 -j ACCEPT shell> iptables-save
我正在键入inet ip地址,我看到在ifconfig下mysql工作台。
我做错了什么? 还是我错过了一个步骤?
我得到错误说“长时间暂停后无法连接到MySQL数据库(10060)。
虚拟服务器上的IP地址与连接设备路由器pipe理页面上的“未知”列表相同。
“无法连接到mysql数据库(10060)”表示这不是一个身份validation问题。
试试nc -v mysqlserver_ip_address 3306
。 它应该说'Ncat:连接到…'如果是这样,这意味着你有一个TCP连接,所以问题是在MySQL或工作台。 如果有其他说明,则networking内容被破坏或者服务器没有在该端口上侦听。
我怀疑你有一个防火墙丢弃你的数据包。 长时间的停顿通常表示被丢弃的数据包,而不是被拒绝的连接。 如果您连接到非防火墙但未打开的端口,则服务器将很快向您发送拒绝。 绝大多数情况下,如果连接超时,是因为有些东西将数据包丢在地板上,而不是礼貌地拒绝它们(当处理人们的端口扫描你的盒子时,礼貌是相当愚蠢的)。 这是防火墙经常做的事情。 所以,这很可能是防火墙的事情。
你说你运行iptables -A ....
,这会把你的新行放在规则的末尾,这意味着它可能不会被使用,因为可能有一个默认的-j DROP规则,添加了该规则。 此外,iptables的保存应该只是打印出的configuration标准输出,而不是实际保存防火墙configuration在正确的地方。
尝试iptables -L
来查看是否sorting错误。 如果是这样,你可以玩-I
。 更简单的方法是做iptables-save > some_temp_file
,然后编辑some_temp_file,然后运行iptables-restore < some_temp_file
。
如果按照自己想要的方式使防火墙工作,请执行iptables-save > /etc/wherever_it_goes
。 在Fedora / Redhat / Centos上,这将是iptables save > /etc/sysconfig/iptables
。
这些命令工作!
firewall-cmd --permanent --add-service=mysql firewall-cmd --reload