背景
前一段时间总能遇到数据库连接超时的问题,把druid连接池配置改了又改,还是会出现。就又开始改jdbcUrl的配置,当然了,依然没用。最后DBA改了数据库配置(max_allowed_packet),据说有用。但是,生产环境表现良好,预发环境还是不怎么样......
说回来jdbcUrl的配置,平时各个工程拷来拷去的,也没专门看过,在此记录一下。
配置
参数
参数 | 说明 | 默认值 | 常用值 |
autoReconnect | 自动连接 | false | true |
autoReconnectForPools | 自动连接连接池 | false | true |
characterEncoding | 当useUnicode=true时,指定字符集 | UTF-8 | |
allowMultiQueries | 在一条语句中,允许使用“;”来分隔多条查询 | false | true |
failOverReadOnly | 在autoReconnect模式下出现故障切换时,是否应将连接设置为“只读” | true | false |
useSSL | 与服务器进行通信时使用SSL | true | false |
useUnicode | 是否使用Unicode | false | true |
socketTimeout | 数据库无返回时,应用等待时间(ms)。要大于等于数据库配置的Socket TimeOut的值 | 0 | 60000 |
常规配置
jdbc:mysql://host:port/databaseName?useSSL=false&autoReconnect=true&autoReconnectForPools=true&allowMultiQueries=true&useUnicode=true&characterEncoding=utf8
参考
关于MySQL的wait_timeout连接超时问题报错解决方案
mysql重连,连接丢失:The last packet successfully received from the server
java.sql.SQLException: The server time zone value '???ú±ê×??±??' is unrecognized or represents more
JDBC中The server time zone value '???ú±ê×??±??' is ............. 的错误
jdbc链接MySQL这句语句是什么意思,我东拼西凑的,不明白这个语句各部分什么意思? - 知乎
解决Java程序连接mysql数据库出现CommunicationsException: Communications link failure错误的问题 - 阿豪聊干货 - 博客园