码迷,mamicode.com
首页 > 数据库 > 详细

记一次数据库连接问题

时间:2016-07-15 17:25:17      阅读:210      评论:0      收藏:0      [点我收藏+]

标签:数据库连接   网络   网站   项目   

最近做项目的时候发现一个问题,网站打开的时候,一停的在转,大概5分钟以后返回504网关超时

当时第一反应是我的网络架构出问题了,于是从前端LVS一直往下查,我的架构是LVS+NGINX+TOMCAT,一直到nginx这块都没问题,从nginx的错误日志也看不出什么,同样的报504网关超时,当时就在想502坏的网关是以为nginx把请求抛给tomcat的时候找不到tomcat的端口,504会不会也一样呢?

[root@web1 ~]# netstat  -lntup|grep 800
tcp        0      0 :::8000                     :::*                        LISTEN      4208/java              
tcp        0      0 :::8002                     :::*                        LISTEN      4208/java           
没看出什么问题,再与线上服务器对比的时候找到问题

[root@web1 ~]# netstat  -lntup|grep 800
tcp        0      0 :::8000                     :::*                        LISTEN      4208/java           
tcp        0      0 ::ffff:127.0.0.1:8001       :::*                        LISTEN      4208/java           
tcp        0      0 :::8002                     :::*                        LISTEN      4208/java          
发现tomcat少了一个端口,为什么没会导致这个问题呢?

查看tomcat日志,发现tomcat没起来,一直卡在连接连接数据库那块

于是我在web端查看mysql端口,发现能通

[root@web2 server]# telnet 10.10.0.126 3306
Trying 10.10.0.126...
Connected to 10.10.0.126.
Escape character is ‘^]‘.
^]
telnet> \q
Connection closed.

到这里发现自己的思路断了!!

峰回路转,无意中在db2上查看了一下mysql端口,发现和在web上的结果不一样

[root@db2 root]# telnet 10.10.0.126 3306
Trying 10.10.0.126...
Connected to 10.10.0.126.
Escape character is ‘^]‘.
N
5.5.32-log0pKhJw=db!>MIgIxAwW,s"mysql_native_password
这是为什么呢?

于是一点点的回忆,思考web和db的区别,最后终于找到问题所在

10.10.0.126和10.10.0.127是我数据的读vip和写vip,只有这两台机器才有10.10.0.0网段的ip

web上只有一个外网ip,于是route -n查看了一下web和db的网关

[root@web1 server]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
202.192.168.0   0.0.0.0         255.255.255.0   U     0      0        0 eth1
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth1
0.0.0.0         202.192.168.1   0.0.0.0         UG    0      0        0 eth1

[root@db2 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
202.192.168.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0
10.10.0.0       0.0.0.0         255.255.255.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
0.0.0.0         202.192.168.1   0.0.0.0         UG    0      0        0 eth0

很明显,web上缺少10.10.0.0的网关

于是在web端添加了一个网关
route add -net 10.10.0.0 netmask 255.255.255.0 dev eth1
再查看一下

[root@web1 server]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
202.192.168.0   0.0.0.0         255.255.255.0   U     0      0        0 eth1
10.10.0.0       0.0.0.0         255.255.255.0   U     0      0        0 eth1
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth1
0.0.0.0         202.192.168.1   0.0.0.0         UG    0      0        0 eth1
已经和db端一样了

查看一下mysql端口

[root@web1 server]# telnet 10.10.0.126 3306
Trying 10.10.0.126...
Connected to 10.10.0.126.
Escape character is ‘^]‘.
N
5.5.32-log±vj3[SkES!Q{9H=9E0]fjamysql_native_password
成功啦!!!!!

重启tomcat,查看tomcat端口

[root@web1 server]# netstat -lntup|grep 800
tcp        0      0 :::8000                     :::*                        LISTEN      4208/java           
tcp        0      0 ::ffff:127.0.0.1:8001       :::*                        LISTEN      4208/java           
tcp        0      0 :::8002                     :::*                        LISTEN      4208/java           
端口起来啦

页面访问也正常了!!!

本文出自 “wanliang” 博客,请务必保留此出处http://wlmint.blog.51cto.com/10931984/1826740

记一次数据库连接问题

标签:数据库连接   网络   网站   项目   

原文地址:http://wlmint.blog.51cto.com/10931984/1826740

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!