MySQL JDBC URL各参数详解
jdbc:mysql://localhost:3306/test?user=root&password=123456&useUnicode=true&characterEncoding=gbk
&autoReconnect=true&failOverReadOnly=false&serverTimezone=UTC&driver=com.mysql.cj.jdbc.Driver
参数名称 | 参数说明 | 缺省值 |
---|---|---|
user | 指定用于连接数据库的用户名。 | |
password | 用户密码(用于连接数据库)。 | |
useUnicode | 是否使用Unicode字符集,如果参数characterEncoding 设置为gb2312或gbk,本参数值必须设置为true 。 | false |
useSSL | 是否启用SSL加密连接。 | 取决于环境 |
characterEncoding | 当useUnicode 设置为true 时,指定字符编码。 | false |
autoReconnect | 数据库连接异常中断时,是否自动重新连接? | false |
autoReconnectForPools | 是否使用针对数据库连接池的重连策略。 | false |
failOverReadOnly | 当主服务器失败时,是否自动切换到只读副本。 | true |
maxReconnects | autoReconnect 设置为true 时,重试连接的次数。 | 3 |
initialTimeout | autoReconnect 设置为true 时,两次重连之间的时间间隔,单位:秒。 | 2 |
connectTimeout | 和数据库服务器建立socket连接时的超时,单位:毫秒。 | 0 (永不超时) |
socketTimeout | socket操作(读写)超时,单位:毫秒。 | 0 (永不超时) |
allowMultiQueries | 允许一次执行多条语句。 | false |
serverTimezone | 设置时区,例如UTC (统一标准世界时间)或Asia/Shanghai (中国时区)。 | |
tinyInt1isBit | 控制TINYINT(1) 类型的列是否映射为java.lang.Boolean 或java.lang.Byte 。 | true |
在中文环境中,为了避免中文乱码,通常会将characterEncoding设置为gbk。如果出现中文乱码,可以尝试将useUnicode设置为true并将characterEncoding设置为UTF-8。
在配置文件中使用&符号时,需要注意转义,如在XML配置文件中,应将&转义为&。
在使用数据库连接池时,建议设置autoReconnect=true和failOverReadOnly=false,以确保连接的稳定性和数据的完整性。