昨几天重装了debian..发现mysql有问题.
几经周折,发现问题所在.
本来该写在blog里,只是matrix的blog还在测试当中.
所以,发在文章栏目与大家共享.
问题: 原来运行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 an|grep 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的安全策略有关吧.