安装了lnmp 1.2之后的版本,发现远程连接mysql总是失败,原本以为是设置的问题,后来才发现原来是lnmp中iptables的规则问题
首先先要确定自己的设置是没有问题的,访问数据库的用户使用的是%权限
如果设置没问题,那么可以检查一下iptables
iptables 里删除DROP 3306端口的规则
将所有iptables以序号标记显示,执行:
iptables -L -n --line-numbers
比如要删除INPUT里序号为8的规则,执行:
iptables -D INPUT 8
CentOS上可以执行:service iptables save保存规则。
详情请参考:
http://bbs.vpser.net/thread-3135-1-1.html
http://www.vpser.net/security/linux-iptables.html
2016-9-23更新,我这边使用java的程序连接,还是报错,下面方法仅针对java程序的设置
最近设置一个vps,发现设置完成,还是会提示错误,代码如下
com.mysql.jdbc.exceptions.MySQLNonTransientConnectionException: Server connection failure during transaction. Due to underlying exception: 'java.sql.SQLException: Unknown initial character set index '45' received from server. Initial client character set can be forced via the 'characterEncoding' property.'.
上面的设置完全没有问题,但是还是会提示错误,于是翻阅资料,依然要检查配置
后来,更换了一个最新版本的mysql-connector,问题解决