问题: 原来运行ok的Java程序,架构为client>soap>server>mysql. 重装了debian和tomcat,mysql之后,运行该java程序,server 竟然抛出sql state null异常.
解决步骤: ssh登陆服务器 restart mysql bs~#:cd /etc/init.d bs~#:./mysql restart 看mysql是否登录正常 bs~#:mysql uroot pxxx 发现正常进入mysql 检查sock bs~#:mysqladmin variables 查看用到的sock文件,发现为/var/run/mysqld/mysqld.sock bs~#:mysqladmin sock=xxx version 发现正常 看mysql tcp ip访问是否正常,因为java都是通过tcpip访问mysql的 bs~#:mysql h myip uroot p 不管是127.0.0.1还是实际ip 都得到 can't connect to mysql server on xxx 检查server现在监听的端口号: bs~#:netstat angrep LISTEN 发现并没有监听3306端口 检查my.cnf文件 bs~#:vi /etc/mysql/my.cnf 发现bindaddress 和port的设置都是正确的. 没办法,Google查找原因 找到了,原来在debian里,出于安全原因,mysql默认都是skipnetwork bs~#:vi /etc/mysql/my.cnf 果然发现了skipnetwork这行,怪自己怎么开始不认真看看my.cnf文件, 注销掉这行 restart mysql It is ok now.if you run into this PRoblem,just try my solution. 但是仍然希奇,就是在我上一次安装的时候,怎么没有这个问题.可能和debian的安全策略有关吧.