您的位置:首页 > 运维架构 > Tomcat

TOMCAT JDBC连接不上MYSQL的常用诊断

2016-03-17 15:09 579 查看
下面对常见的情况进行分析:

1、web和数据库操作系统是否有问题

web端系统日志报错:ip_conntrack: table full, dropping packet

该报错说明web服务器有掉包情况,需要更改配置

# vim /etc/sysctl.conf 添加如下行

net.ipv4.netfilter.ip_conntrack_max = 655350

net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 1200

有些系统是添加如下2行

net.nf_conntrack_max = 524688

net.netfilter.nf_conntrack_tcp_timeout_established = 1200

# sysctl -p

上面状态跟踪表的最大行数(nf_conntrack_max)最大值计算方式如下:

CONNTRACK_MAX = RAMSIZE (in bytes) / 16384 / (ARCH / 32)

因此内存为32G的64位系统的状态跟踪表的最大行数理论值为:

CONNTRACK_MAX = 32*1024*1024*1024/16384/2 = 1048576

# echo "163840" > /sys/module/nf_conntrack/parameters/hashsize

哈希表大小通常为总表的1/8,最大为1/2:CONNTRACK_BUCKETS = CONNTRACK_MAX / 8

2、是否能telnet连通mysql ip+port,防火墙问题iptables

查看MYSQL服务器端是否限制了3306端口的访问。

3、账号和权限是否正确

mysql账号由username@ip组成,如果仅仅username相同,而web的IP不在@ip范围内,是无法连接上MYSQL的

4、连接数是否超过最大限制

报错:Too many connections error

设置max_connections为更大的值或查看JDBC是否配置了连接池

5、登陆失败数达到最大值max_connect_err/FLUSH HOSTS;

当有用户连接MYSQL密码一直错误,超过max_connect_errors=1000会报错:ERROR
1129 (00000): Host ‘gateway’ is blocked because of many con

执行mysqladmin -u username -p flush-hosts即可。

6、mysql端口是否被其它程序占用

有时候会存在MYSQL端口被占用的情况, 请在脑海中注意这点,在所有判断都错误的时候,也行就是这个问题导致的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: