centos 下安装mysql后,远程访问
2方面原因 1 防火墙需要开启3306端口 2 mysql内部需要赋权限
若Mysql服务器设置了远程访问的用户和权限,但远程连接的时候一直接错
ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.0.114' (113)
则有可能是防火墙的原因
方法一:关闭防火墙
/etc/init.d/iptables stop
方
法二:修改防火墙配置文件: vi /etc/sysconfig/iptables 增加下面一行: -A RH-Firewall-1-INPUT
-m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
(也可以复制80端口那行,改一下端口号就可以了) 如果想开通21等端口,只需要将3306换成21等要开放的端口就可以了。 配置后,重新启动iptable service iptables restart 这时就可以从其他机器访问Mysql了。
注
意: -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport
3306 -j ACCEPT -A RH-Firewall-1-INPUT -j REJECT --reject-with
icmp-host-prohibited
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited 是拒绝icmp访问,对于其它的报文返回一个主机禁止访问的错误
开通3306 端口的行必须在icmp-host-prohibited前
- /usr/local/mysql/bin/mysql -u root -p (进入mysql)
- use mysql;
- SELECT `Host`,`User` FROM user;
- UPDATE user SET `Host` = '%' WHERE `User` = 'root' LIMIT 1;
- flush privileges;
- 注意在mysql 命令行形式下一定要输入";".