`

Mysql JDBC Url参数说明

 
阅读更多


MySQL的 JDBC URL 格式 for  Connector/J 如下例:


jdbc:mysql://[host][,failoverhost...][:port]/[database] »
[?propertyName1][=propertyValue1][&propertyName2][=propertyValue2]...

jdbc:mysql://[host:port],[host:port].../[database] »
[?propertyName1][=propertyValue1][&propertyName2][=propertyValue2]...

实例:
jdbc:mysql://localhost:3306/sakila?profileSQL=true

 

现只列举几个重要的参数,如下表所示:

参数名称 参数说明 缺省值 最低版本要求
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=gbk&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=gbk
&autoReconnect=true&failOverReadOnly=false

 

 

原版手册参考地址如下:http://dev.mysql.com/doc/refman/5.1/en/connector-j-reference-configuration-properties.html

 

附录:URL连接参数表(这个表看不全,最后面有word下载 )

 

Mysql_JDBC_URL连接参数表.rar

 

属性名

定义

要求?

默认值

版本

Connection/Authentication(连接/鉴定)

user

连接的用户

No


全部

password

连接时使用的密码。

No


全部

socketFactory

驱动程序用于创建与服务器套接字连接的类的名称。该类必须实现了接口“com.mysql.jdbc.SocketFactory”,并有公共无参量构造函数。

No

com.mysql.jdbc.StandardSocketFactory

3.0.3

connectTimeout

套接字连接的超时(单位为毫秒),0表示无超时。仅对JDK-1.4或更新版本有效。默认值为“0”。

No

0

3.0.1

socketTimeout

网络套接字连接的超时(默认值0表示无超时)。

No

0

3.0.1

useConfigs

在解析URL属性或应用用户指定的属性之前,加载由逗号“,”分隔的配置属性列表。在文档的“配置”部分中解释了这些配置。

No


3.1.5

interactiveClient

设置CLIENT_INTERACTIVE标志,根据INTERACTIVE_TIMEOUT而不是WAIT_TIMEOUT向MySQL通报超时连接。

No

false

3.1.0

propertiesTransform

com.mysql.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

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

出现故障切换(使用多主机故障切换)并返回主机之前发出的查询数。无论首先满足了哪个条件,“queriesBeforeRetryMaster”或“secondsBeforeRetryMaster”,均会再次与主机进行连接。默认值为“50”。

No

50

3.0.2

secondsBeforeRetryMaster

出现故障切换后,在尝试再次连接到主服务器之前,驱动程序应等待的时间? 无论首先满足了哪个条件,“queriesBeforeRetryMaster”或“secondsBeforeRetryMaster”,均会再次与主机进行连接。单位为秒,默认值为30。

No

30

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 DATA LOCAL INFILE”语句中否允许URL?

No

false

3.1.4

paranoid

采取措施,防止在错误信息中泄漏敏感信息,并可可能时清除保存敏感数据的数据结构? 默认值为“假”。

No

false

3.0.1

Performance Extensions (性能扩展)

metadataCacheSize

如果将cacheResultSetMetaData设置为“真”,对cacheResultSetMetadata的查询次数(默认值为50)。

No

50

3.1.1

prepStmtCacheSize

如果允许预处理语句缓冲功能,应缓冲处理多少条预处理语句?

No

25

3.0.10

prepStmtCacheSqlLimit

如果允许预处理语句缓冲功能,驱动程序将执行解析缓冲处理的最大SQL是什么?

No

256

3.0.10

maintainTimeStats

驱动程序是否应维持各种内部定时器,以允许空闲时间计算,以及与服务器的连接失败时允许提供更详细的错误消息? 将该属性设置为“假”,对于每次查询,至少能减少两次对System.getCurrentTimeMillis()的调用。

No

true

3.1.9

blobSendChunkSize

组块,当通过ServerPreparedStatements发送BLOB/CLOB时使用。

No

1048576

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数据时,缓冲区的大小应是多少?

No

1048576

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

实现了com.mysql.jdbc.log.Log的类的名称,com.mysql.jdbc.log.Log用于记录消息(默认为“com.mysql.jdbc.log.StandardLogger”,它会将日志记录到STDERR)。

No

com.mysql.jdbc.log.StandardLogger

3.1.1

profileSQL

跟踪查询以及它们对已配制记录器的执行/获取次数(真/假),默认为“假”。

No

false

3.1.0

reportMetricsIntervalMillis

如果允许“gatherPerfMetrics”,记录它们的频率是多少(单位毫秒)?

No

30000

3.1.2

maxQuerySizeToLog

调试或仿形时,控制将记录的查询的最大长度/大小。

No

2048

3.1.3

packetDebugBufferSize

当“enablePacketDebug”为“真”时,需要保留的最大信息包数目。

No

20

3.1.3

slowQueryThresholdMillis

如果允许“logSlowQueries”,在将查询记录为“慢”之前的查询时间是多少(毫秒)?

No

2000

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不是固有支持的字符集时(如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

-1

all versions

noDatetimeStringSync

不保证ResultSet.getDatetimeType().toString().equals(ResultSet.getString()。

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

在DatabaseMetaData.getColumn/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

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

 

原版手册参考地址如下:http://dev.mysql.com/doc/refman/5.1/en/connector-j-reference-configuration-properties.html

  • 大小: 282.4 KB
  • 大小: 326.5 KB
  • 大小: 387.1 KB
  • 大小: 315.3 KB
分享到:
评论
3 楼 string2020 2015-11-11  
jdbc:mysql://[host][,failoverhost...][:port]/[database]
这个database为啥可以不指定。
2 楼 lvye351 2014-12-30  

http://dev.mysql.com/doc/connector-j/en/connector-j-reference-configuration-properties.html
allowMultiQueries
Allow the use of ';' to delimit multiple queries during one statement (true/false), defaults to 'false'

哪个MySQL版本?
allowMultiQueries=true 不设置,
5.5.25 MySQL Community Server 照样可执行

无论命令行还是 Navicat下

select id from tb;select name from tb;

返回2个结果集。在navicat下就是2个结果返回窗口
1 楼 爱岩修 2014-11-14  
useUnicode这个属性的默认值是true,我在http://dev.mysql.com/doc/connector-j/en/connector-j-reference-configuration-properties.html看到的

相关推荐

    Mysql JDBC驱动 .zip_MYSQL_jdbc mysql_mysql jdbc_mysql jdbc driver_

    MySQL JDBC驱动是Java开发者在与MySQL数据库交互时不可或缺的一个组件。JDBC(Java Database Connectivity)是Java编程语言的标准API,用于连接Java应用程序和各种类型的数据库,包括MySQL。MySQL JDBC驱动,也称为...

    JDBC连接数据库各种数据库参数大全

    以上介绍了如何使用Java通过JDBC连接不同类型的数据库,并详细解释了各个数据库连接的配置参数。在实际应用中,根据不同的数据库类型选择合适的驱动程序,并正确设置URL、用户名、密码以及其他连接参数是非常重要的...

    mysql jdbc连接驱动jar包(适用于mysql5.7版本,亲测可用)

    String url = "jdbc:mysql://localhost:3306/mydatabase"; String username = "myuser"; String password = "mypassword"; Connection conn = DriverManager.getConnection(url, username, password); ``` ...

    Mysql JDBC源码 官网版

    MySQL JDBC源码是Java开发人员与MySQL数据库进行交互的重要组件,它实现了Java Database Connectivity (JDBC) API,允许Java应用程序连接到MySQL服务器并执行SQL语句。MySQL Connector/J是官方提供的JDBC驱动程序,...

    mysql_JDBC_JAR包

    总的来说,MySQL JDBC JAR包是Java与MySQL数据库交互的核心工具,而添加的URL参数则是为了确保字符集的正确设置。同时,Gson库在数据序列化和反序列化过程中提供支持,特别是在构建Web服务时。了解并熟练掌握这些...

    mysql jdbc

    String url = "jdbc:mysql://localhost:3306/mydatabase"; String user = "username"; String password = "password"; Connection conn = DriverManager.getConnection(url, user, password); ``` 这里URL中的...

    Mysql JDBC Driver

    数据库URL通常以`jdbc:mysql://`开头,接着是服务器地址和端口号,例如`localhost:3306`,然后是数据库名称,如`mydatabase`。一个典型的连接创建示例如下: ```java import java.sql.Connection; import java.sql....

    常用 JDBC 驱动名字和 URL 列表.txt

    ### 常用JDBC驱动名字与URL列表详解 在Java开发中,JDBC(Java Database Connectivity)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。本文将详细...

    jdbc-mysql-connection

    URL参数`jdbc:mysql://localhost:3306/mydatabase`指定了服务器地址、端口号和数据库名。 在实际应用中,我们还会关注性能优化,比如使用连接池管理数据库连接,避免频繁创建和关闭连接带来的开销。此外,事务管理...

    mysql jdbc的用法

    String url = "jdbc:mysql://localhost:3306/mydatabase"; String user = "username"; String password = "password"; Connection conn = DriverManager.getConnection(url, user, password); ``` 这里,`url`...

    MySql JDBC 增删该查

    String url = "jdbc:mysql://localhost:3306/mydb"; String user = "username"; String password = "password"; try { Connection conn = DriverManager.getConnection(url, user, password); System.out....

    mysql JDBC Driver

    - **配置URL**:在Java代码中,使用`DriverManager.getConnection()`方法时,需要提供正确的数据库URL,例如:"jdbc:mysql://localhost:3306/mydatabase?useSSL=false&serverTimezone=UTC"。 4. **使用示例**: `...

    mysqljdbc驱动

    MySQL JDBC驱动,全称为MySQL Connector/J,是MySQL官方提供的用于Java应用程序与MySQL数据库进行交互的驱动程序。它实现了Java Database Connectivity (JDBC) API,使得Java开发者能够在Java平台上方便地进行MySQL...

    mysql连接jdbc jar包

    8. **配置参数**: 驱动连接URL还可以包含其他参数,如使用SSL加密、设置字符编码、指定服务器时区等。 9. **异常处理**: 在与数据库交互时,可能出现SQLException。开发者应该妥善处理这些异常,确保程序的健壮性。...

    MySQL的JDBC 驱动程序

    MySQL的JDBC驱动程序是Java开发者连接到MySQL数据库的关键组件,它允许Java应用程序通过Java Database Connectivity (JDBC) API与MySQL服务器进行交互。在Java环境中,JDBC驱动程序扮演着桥梁的角色,使得开发者能够...

    关于MySql链接url参数的设置

    最近整理了一下网上关于MySql 链接url 参数的设置,有不正确的地方希望大家多多指教: mysql JDBC URL格式如下: jdbc:mysql://[host:port],[host:port]…/[database][?参数名1][=参数值1][&参数名2][=参数值2]… ...

    MSSQL2000与MSSQL2005 JDBC URL的区别

    - **子协议**:表示连接到数据库的方式,例如`jdbc:mysql:`或`jdbc:oracle:`。 - **子名称**:表示连接到的具体数据库,包含服务器地址、端口号、数据库名称等信息。 - **参数**:可以指定额外的连接参数,例如字符...

    mysql-jdbc.jar

    URL格式通常为`jdbc:mysql://<hostname>:<port>/<database>`,其中`<hostname>`是数据库服务器地址,`<port>`是MySQL服务监听的端口,默认为3306,`<database>`是你想要连接的数据库名。 `mysql-jdbc.jar`支持多种...

Global site tag (gtag.js) - Google Analytics