详细解析MySQL JDBC URL中的格式以及其相关参数_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 1897 | 回复: 0   主题: 详细解析MySQL JDBC URL中的格式以及其相关参数        下一篇 
dansmall
注册用户
等级:新兵
经验:52
发帖:71
精华:0
注册:2011-10-27
状态:离线
发送短消息息给dansmall 加好友    发送短消息息给dansmall 发消息
发表于: IP:您无权察看 2015-4-1 17:35:05 | [全部帖] [楼主帖] 楼主

最近在实际操作中曾遇到过这样的疑难问题,如下所示,

会报

  1. at com.MySQL.jdbc.MySQLIO.readFully(MySQLIO.java:1905)  
  2. at com.MySQL.jdbc.MySQLIO.reuseAndReadPacket(MySQLIO.java:2351)  
  3. at com.MySQL.jdbc.MySQLIO.checkErrorPacket(MySQLIO.java:2862)  
  4. at com.MySQL.jdbc.MySQLIO.sendCommand(MySQLIO.java:1571)  
  5. at com.MySQL.jdbc.MySQLIO.sqlQueryDirect(MySQLIO.java:1666)  
  6. at com.MySQL.jdbc.Connection.execSQL(Connection.java:2988)  
  7. at com.MySQL.jdbc.Connection.execSQL(Connection.java:2917)  
  8. at com.MySQL.jdbc.Statement.executeQuery(Statement.java:824)  
  9. at com.zycy.db.DbTrans.executeQuery(DbTrans.java:127) 

这样的错误,重启Tomcat服务后就好了,但是过一晚上就有出现这样的问题

MySQL JDBC URL格式如下:

jdbc:MySQL://[host:port],[host:port].../[database][?参数名1][=参数值1][&参数名2][=参数值2]...


常用的几个较为重要的参数:

参数名称 参数说明 缺省值 最低版本要求

user 数据库用户名(用于连接数据库) 所有版本

password 用户密码(用于连接数据库) 所有版本

useUnicode 是否使用Unicode字符集,如果参数characterEncoding设置为gb2312或gbk,本参数值必须设置为true false 1.1g

characterEncoding 当useUnicode设置为true时,指定字符编码。比如可设置为gb2312或gbk false 1.1g

autoReconnect 当数据库连接异常中断时,是否自动重新连接? false 1.1

autoReconnectForPools 是否使用针对数据库连接池的重连策略 false 3.1.3

failOverReadOnly 自动重连成功后,连接是否设置为只读? true 3.0.12

maxReconnects autoReconnect设置为true时,重试连接的次数 3 1.1

initialTimeout autoReconnect设置为true时,两次重连之间的时间间隔,单位:秒 2 1.1

connectTimeout 和数据库服务器建立socket连接时的超时,单位:毫秒。 0表示永不超时,适用于JDK 1.4及更高版本 0 3.0.1

socketTimeout socket操作(读写)超时,单位:毫秒。 0表示永不超时 0 3.0.1

对应中文环境,通常MySQL连接URL可以设置为:

 jdbc:MySQL://localhost:3306/test?user=root&password=
&useUnicode=true&characterEncoding=utf8&autoReconnect=true&failOverReadOnly=false


在使用数据库连接池的情况下,最好设置如下两个参数:

autoReconnect=true&failOverReadOnly=false


需要注意的是,在xml配置文件中,url中的&符号需要转义成&。比如在tomcat的server.xml中配置数据库连接池时,MySQL jdbc url样例如下:

jdbc:MySQL://localhost:3306/test?user=root&
password=&useUnicode=true&characterEncoding=utf8&
autoReconnect


--转自 北京联动北方科技有限公司




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论