今天帮同事看了一个MySQL的连接问题,蛮有意思,有两个用户,一个用户连接正常,另外一个连接抛错。
开发同学提供的错误日志如下:
{resin-33} java.net.SocketException
,{resin-33}消息:java.net.ConnectException:
…
,{resin-33} java.net.SocketException: java.net.ConnectException:连接超时
,{resin-33},,com.mysql.jdbc.StandardSocketFactory.connect (StandardSocketFactory.java: 156)
,{resin-33},,在com.mysql.jdbc.MysqlIO MysqlIO.java: 284。
,{resin-33},,com.mysql.jdbc.Connection.createNewIO (Connection.java: 2706)
,{resin-33},,在com.mysql.jdbc.Connection。(Connection.java: 1485)
可以看到连接数据库的时候抛出了超时异常,但是他们使用telnet xxxx 3306端口是没问题的,显然问题的方向看起来在权限了。
当然从error.log里面也看到了不少的警告信息,看起来他是在解析这个IP信息的时候出了问题。
10.127[警告]IP地址的。无法解决:xxxx的临时故障名称解析
10.127[警告]IP地址的。无法解决:xxxx的名义上的决议暂时的失败
那么当时的操作大体是怎么样呢,因为这个操作已经很长时间了,我们就简单复现下这个问题,首先使用赠款的方式创建用户,当然还是推荐创建用户的方式。
比;格兰特使用alt=" MySQL访问受限的问题分析”>