MysqlJDBC连接串参数说明MySQL的 JDBC URL 格式 for Connector/J 如下例:
jdbc:mysql://[host][,][:port]/[database] »
[?propertyName1][=propertyValue1][&propertyName2][=propertyValue2]...
jdbc:mysql://[host:port],[host:port].../[database] »
[?propertyName1][=propertyValue1][&propertyName2][=propertyValue2]...
实例:
jdbc:mysql://localhost:3306/sakila?useUnicode=true&characterEncoding=UTF-8
现只列举⼏个重要的参数,如下表所⽰:
参数名称参数说明缺省
值
最低版本
要求
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=root&useUnicode=true&characterEncoding=UTF-8&autoReconnect=true
在使⽤数据库连接池的情况下,最好设置如下两个参数:
autoReconnect=true&failOverReadOnly=false
需要注意的是,在xml配置⽂件中,url中的&符号需要转义成&。⽐如在tomcat的l中配置数据库连接池时,mysql jdbc url样例如下:
jdbc:mysql://localhost:3306/test?user=root&password=&useUnicode=true&characterEncoding=gbk
&autoReconnect=true&failOverReadOnly=false
附录:Mysql JDBC URL连接参数表
属性名定义要
求?
默认值版本
Connection/Authentication(连接/鉴定)
user连接的⽤户No全部password连接时使⽤的密码。No全部
socketFactory 驱动程序⽤于创建与服务器套接字连接的类的名称。该类必须实现了接
⼝“sql.jdbc.SocketFactory”,并有公共⽆参量构造函数。
sql.jdbc.StandardSocketFactory 3.0.3
connectTimeout 套接字连接的超时(单位为毫秒),0表⽰⽆超时。仅对JDK-1.4或更
新版本有效。默认值为“0”。
No0 3.0.1
socketTimeout⽹络套接字连接的超时(默认值0表⽰⽆超时)。No0 3.0.1
useConfigs 在解析URL属性或应⽤⽤户指定的属性之前,加载由逗号“,”分隔的配置
属性列表。在⽂档的“配置”部分中解释了这些配置。
No 3.1.5
interactiveClient 设置CLIENT_INTERACTIVE标志,根据INTERACTIVE_TIMEOUT⽽
不是WAIT_TIMEOUT向MySQL通报超时连接。
No false 3.1.0
sql.jdbc.ConnectionPropertiesTransform的1个实施实例,在尝
试连接之前,驱动程序将使⽤它来更改传递给驱动的URL属性。
No 3.1.4
useCompression与服务器进⾏通信时采⽤zlib压缩(真/假)?默认值为“假”。No false 3.0.17
High Availability and Clustering (⾼可⽤性和簇集)
autoReconnect 驱动程序是否应尝试再次建⽴失效的和/或死连接?如果允许,对于
在失效或死连接上发出的查询(属于当前事务),驱动程序将抛出异
常,但在新事务的连接上发出下⼀个查询时,将尝试再连接。不推荐使
⽤该特性,这是因为,当应⽤程序不能恰当处理SQLExceptions时,
它会造成与会话状态和数据⼀致性有关的副作⽤,设计它的⽬的仅⽤于
下述情况,即,当你⽆法配置应⽤程序来恰当处理因死连接和/或⽆
效连接导致的SQLExceptions时。作为可选⽅式,可将MySQL服务器
变量 “wait_timeout”设置为较⾼的值,⽽不是默认的8⼩时。
No false 1.1
transition是什么意思英语autoReconnectForPools使⽤适合于连接池的再连接策略(默认值为“假”)。No false 3.1.3
failOverReadOnly 在autoReconnect模式下出现故障切换时,是否应将连接设置为“只
读”?
No true 3.0.12
reconnectAtTxEnd 如果将autoReconnect设置为“真”,在每次事务结束后驱动程序是否应
尝试再连接?
No false 3.0.10
roundRobinLoadBalance 启⽤了autoReconnect⽽且failoverReadonly为“假”时,是否应按照循环
⽅式挑选要连接的主机?
No false 3.1.2
queriesBeforeRetryMaster 出现故障切换(使⽤多主机故障切换)并返回主机之前发出的查询数。
⽆论⾸先满⾜了哪个条c shell教程
件,“queriesBeforeRetryMaster”或“secondsBeforeRetryMaster”,均会
再次与主机进⾏连接。默认值为“50”。
No50 3.0.2
secondsBeforeRetryMaster 出现故障切换后,在尝试再次连接到主服务器之前,驱动程序应等待的
时间?⽆论⾸先满⾜了哪个条
件,“queriesBeforeRetryMaster”或“secondsBeforeRetryMaster”,均会
再次与主机进⾏连接。单位为秒,默认值为30。
No30 3.0.2
enableDeprecatedAutoreconnect ⾃3.2版开始,⾃动再连接功能受到冷落,在3.3版中将删除该功能。将
该属性设置为“真”可禁⽌检查配置的特性。
No false 3.2.1
Security (安全)
allowMultiQueries 在⼀条语句中,允许使⽤“;”来分隔多条查询(真/假,默认值
为“假”)。
No false 3.1.1
useSSL与服务器进⾏通信时使⽤SSL(真/假),默认值为“假”。No false 3.0.2 requireSSL要求SSL连接,useSSL=true?默认值为“假”。No false 3.1.0 allowUrlInLocalInfile驱动程序在是“LOAD D
ATA LOCAL INFILE”语句中否允许URL?No false 3.1.4
paranoid 采取措施,防⽌在错误信息中泄漏敏感信息,并可可能时清除保存敏感
数据的数据结构?默认值为“假”。
No false 3.0.1
Performance Extensions (性能扩展)
metadataCacheSize 如果将cacheResultSetMetaData设置为“真”,对
cacheResultSetMetadata的查询次数(默认值为50)。
No50 3.1.1
prepStmtCacheSize如果允许预处理语句缓冲功能,应缓冲处理多少条预处理语句?No25 3.0.10
prepStmtCacheSqlLimit 如果允许预处理语句缓冲功能,驱动程序将执⾏解析缓冲处理的最⼤
SQL是什么?
No256 3.0.10
maintainTimeStats 驱动程序是否应维持各种内部定时器,以允许空闲时间计算,以及与服
务器的连接失败时允许提供更详细的错误消息?将该属性设置为“假”,
对于每次查询,⾄少能减少两次对CurrentTimeMillis()的调
⽤。
No true 3.1.9
blobSendChunkSize组块,当通过ServerPreparedStatements发送BLOB/CLOB时使⽤。No1048576 3.1.9 cacheCallableStmts驱动程序是否应对CallableStatements的解析过程执⾏缓冲处理。No false 3.1.2
cachePrepStmts 驱动程序是否应对客户端预处理语句的PreparedStatements的解析过
程执⾏缓冲处理,是否应检查服务器端预处理语句的适⽤性以及服务器
端预处理语句本⾝?
No false 3.0.10
cacheResultSetMetadata 驱动程序是否应对⽤于Statements和PreparedStatements的
ResultSetMetaData执⾏缓冲处理?要求 JDK-1.4+,真/假,默认
为“假”。织梦内容管理系统安装程序
No false 3.1.1
属性名定义要
求?
默认值版本
cacheServerConfiguration 驱动程序是否应根据每条URL对“HOW VARIABLES”和“SHOW
COLLATION”的结果执⾏缓冲处理?
No false 3.1.5
dontTrackOpenResources JDBC规范要求驱动程序⾃动跟踪和关闭资源,但是,如果你的应⽤程
序不能明确调⽤作⽤在语句或结果集上的close(),可能会导致内存泄
漏。将该属性设置为“真”,可放宽该限制,对于某些应⽤程序,会提供
更⾼的内存效率。
No false 3.1.7
dynamicCalendars 需要时,驱动程序是否应检索默认⽇历,或根据连接/会话对其进⾏缓
冲处理?
No false 3.1.5
elideSetAutoCommits 如果使⽤MySQL-4.1或更⾼版本,当服务器的状态与
Connection.setAutoCommit(boolean)请求的状态不匹配时,驱动程序
是否仅应发出“set autocommit=n”查询?
No false 3.1.3
holdResultsOpenOverStatementClose 驱动程序是否应按照JDBC规范的要求关闭Statement.close()上的结果
集?
No false 3.1.7
locatorFetchBufferSize 如果将“emulateLocators”配置为“真”,当获取关于
getBinaryInputStream的BLOB数据时,缓冲区的⼤⼩应是多少?
No1048576 3.2.1
useFastIntParsing是否使⽤内部“String->Integer”转换⼦程序来避免创建过多对象?No true 3.1.4
useLocalSessionState 驱动程序是否应引⽤autocommit的内部值,以及由
Connection.setAutoCommit()和Connection.setTransactionIsolation()
设置的事务隔离,⽽不是查询数据库?
No false 3.1.7
useNewIO 驱动程序是否应将java.nio.* interfaces⽤于⽹络通信(真/假),默认
为“假”。
No false 3.1.0
useReadAheadInput从服务器读取数据时,是否使⽤较新的、优化的⾮成组缓冲输⼊流?No true 3.1.5 Debuging/Profiling (调试/ 仿形)
logger 实现了sql.jdbc.log.Log的类的名称,sql.jdbc.log.Log⽤
于记录消息(默认为“sql.jdbc.log.StandardLogger”,它会将⽇
志记录到STDERR)。
sql.jdbc.log.StandardLogger 3.1.1
profileSQL 跟踪查询以及它们对已配制记录器的执⾏/获取次数(真/假),默认
为“假”。
No false 3.1.0
reportMetricsIntervalMillis如果允许“gatherPerfMetrics”,记录它们的频率是多少(单位毫秒)?No30000 3.1.2 maxQuerySizeToLog调试或仿形时,控制将记录的查询的最⼤长度/⼤⼩。No2048 3.1.3 packetDebugBufferSize当“enablePacketDebug”为“真”时,需要保留的最⼤信息包数⽬。No20 3.1.3
slowQueryThresholdMillis 如果允许“logSlowQueries”,在将查询记录为“慢”之前的查询时间是多
少(毫秒)?
No2000 3.1.2
useUsageAdvisor 驱动程序是否应发出“使⽤情况”警告,就DBC和MySQL Connector/J的
恰当和⾼效使⽤给出建议(真/假,默认为“假”)?
No false 3.1.1
autoGenerateTestcaseScript 驱动程序是否应将正在执⾏的SQL(包括服务器端预处理语句)转储到
STDERR?
No false 3.1.9
dumpQueriesOnException驱动程序是否应将发送⾄服务器的查询内容转储到SQLExceptions中?No false 3.1.3
enablePacketDebug 允许时,将保留“packetDebugBufferSize”信息包的环形缓冲区,并当
在驱动程序代码的关键区域抛出异常时进⾏转储。
No false 3.1.3
explainSlowQueries 如果允许了“logSlowQueries”,驱动程序是否应在服务器上⾃动发
出“EXPLAIN”,并以WARN级别将结果发送给配置好的⽇志?
No false 3.1.2
logSlowQueries是否要记录时间长于“slowQueryThresholdMillis”的查询?No false 3.1.2 traceProtocol是否应记录跟踪级⽹络协议?No false 3.1.2 Miscellaneous (其他)
useUnicode 处理字符串时,驱动程序是否应使⽤Unicode字符编码?仅应在驱动程
序⽆法确定字符集映射,或你正在强制驱动程序使⽤MySQL不是固有
mysql无法连接到服务器windows域管理工具⽀持的字符集时(如UTF-8)才应使⽤。真/假,默认为“真”。
No false 1.1g
属性名定义要
求?
默认值版本
characterEncoding 如果“useUnicode”被设置为“真”,处理字符串时,驱动程序应使⽤什么
字符编码?默认为“autodetect”。
No 1.1g
characterSetResults字符集,⽤于通知服务器以何种字符集返回结果。No 3.0.13
connectionCollation 如果设置了它,将通知服务器通过“set collation_connection”使⽤该校
对。
No 3.0.13
sessionVariables 以逗号隔开的“名称/值”对列表,当驱动程序建⽴了连接后,以“SET
SESSION ...”的⽅式将其发送给服务器。
No 3.1.8
allowNanAndInf 驱动程序是否应在PreparedStatement.setDouble()中允许NaN或+/-
INF值?
No false 3.1.5
autoDeserialize驱动程序是否应⾃动检测并串并转换保存在BLOB字段中的对象?No false 3.1.5
capitalizeTypeNames 是否将DatabaseMetaData中的类型名转换为⼤写?通常仅在使⽤
WebObjects时有⽤,真/假。默认为“假”。
No false 2.0.7
clobberStreamingResults 这会使“流式”结果集被⾃动关闭,如果在所有数据尚未从服务器中读取
完之前,执⾏了另⼀查询,正在从服务器流出的任何未完成数据均将丢
失。
No false 3.0.9
continueBatchOnError 如果⼀条语句失败,驱动程序是否应继续处理批命令? JDBC规范允许
任何⼀种⽅式(默认为“真”)。
No true 3.0.3
createDatabaseIfNotExist 如果不存在,创建URL中给定的数据库。假定⽤户具有创建数据库的
权限。
No false 3.1.9
emptyStringsConvertToZero驱动程序是否应允许从空字符串字段到数值“0”的转换?No true 3.1.8 emulateLocators N/A No false 3.1.0
emulateUnsupportedPstmts 驱动程序是否应检测不被服务器⽀持的预处理语句,并⽤客户端模拟版
替换它们?
No true 3.1.7
ignoreNonTxTables是否忽略关于回退的⾮事务表?默认值为“假”。No false 3.0.9
jdbcCompliantTruncation 连接到⽀持告警的服务器时(MySQL 4.1.0和更⾼版本),当按照
JDBC的要求截短数据时,驱动程序是否应抛出
java.sql.DataTruncation异常?
No true 3.1.2
maxRows返回的最⼤⾏数(0,默认值表⽰返回所有⾏)。No-1all versions
noDatetimeStringSync 不保证
No false 3.1.7
nullCatalogMeansCurrent 当DatabaseMetadataMethods请求“⽬录”参数时,值“Null”是否意味着
使⽤当前⽬录?它不兼容JDBC,但符合驱动程序早期版本的传统⾏
为。
No true 3.1.8
nullNamePatternMatchesAll 接受*pattern参数的DatabaseMetaData⽅法是否应将null按对待“%”的
相同⽅式处理(不兼容JDBC,但驱动程序的早期版本能接受与规范的
这类偏离)。No true 3.1.8
pedantic严格遵守JDBC规范。No false 3.0.0
relaxAutoCommit 如果驱动程序所连接的MySQL服务器的版本不⽀持事务,仍允许调⽤
commit()、rollback()和setAutoCommit()?真/假,默认为“假”。
No false 2.0.13
retainStatementAfterResultSetClose 调⽤ResultSet.close()后,驱动程序是否应将语句引⽤保存在结果集
中?在JDBC-4.0后,与JDBC不兼容。
No false 3.1.11
rollbackOnPooledClose当连接池中的逻辑连接关闭时,驱动程序是否应发出rollback()?No true 3.0.15 runningCTS13允许在Sun与JDBC兼容的testsuite 1.3版中处理缺陷。No false 3.1.7 serverTimezone覆盖时区的检测/映射。当服务器的时区为映射到Java时区时使⽤。No 3.0.2 strictFloatingPoint仅在兼容性测试的早期版本中使⽤。No false 3.0.0
strictUpdates 驱动程序是否应对可更新结果集进⾏严格检查(选择所有的主键)?真
/假,默认为“真”。
No true 3.0.4
属性名定义要
求?
默认值版本
tinyInt1isBit 驱动程序是否应将数据类型TINYINT(1)当作BIT类型对待?创建表时,
服务器会执⾏BIT -> TINYINT(1)操作。
No true 3.0.16
transformedBitIsBoolean 如果驱动程序将TINYINT(1)转换为不同的类型,为了与MySQL-5.0兼
容,驱动程序是否应使⽤BOOLEAN取代BIT?这是因为MySQL-5.0具
有BIT类型。
No false 3.1.9
ultraDevHack 由于UltraDev已损坏,并为所有语句发出了prepareCall(),需要时,是
否要为prepareCall()创建PreparedStatements?
真/假,默认值为“假”。
No false 2.0.3
useHostsInPrivileges 在Column/TablePrivileges()中为⽤户添
加“@hostname”。真/假,默认为“真”。
No true 3.0.2
useOldUTF8Behavior与4.0和更早版本的服务器进⾏通信时,使⽤UTF-8。No false 3.1.6 useOnlyServerErrorMessages对服务器返回的错误消息,不事先设定“标准的”SQLState错误消息。No true 3.0.15 useServerPrepStmts如果服务器⽀持,是否使⽤服务器端预处理语句?默认值为“真”。No true 3.1.0
useSqlStateCodes 使⽤SQL标准状态码取代“传统的”X/Open/SQL状态码,真/假,默认
为“真”。
No true 3.1.3
useStreamLengthsInPrepStmts 是否采⽤PreparedStatement/ResultSet.setXXXStream()⽅法调⽤中的
流长度参数?真/假,默认为“真”。
No true 3.0.2
useTimezone 是否在客户端和服务器时区间转换时间/⽇期类型(真/假,默认
为“假”)?
No false 3.0.2
useUnbufferedInput不使⽤BufferedInputStream来从服务器读取数据。No true 3.0.11
matlab百度网盘资源yearIsDateType JDBC驱动程序是否应将MySQL类型“YEAR”当作java.sql.Date或
SHORT对待?
No true 3.1.9
zeroDateTimeBehavior 当驱动程序遇到全由0组成的DATETIME值时,应出现什么?MySQL使
⽤它来表⽰⽆效⽇期。有效值是“exception”、
“round”和“convertToNull”。
No exception 3.1.4
属性名定义要
求?
默认值版本
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论