`

MySql jdbc 连接参数

 
阅读更多

 

jdbc:mysql://192.168.1.25:3306/test?useUnicode=true&characterEncoding=UTF-8 

 

见官网:

http://dev.mysql.com/doc/connector-j/en/connector-j-reference-configuration-properties.html

5.1 Driver/Datasource Class Names, URL Syntax and Configuration Properties for Connector/J

The name of the class that implements java.sql.Driver in MySQL Connector/J is com.mysql.jdbc.Driver. The org.gjt.mm.mysql.Driver class name is also usable for backward compatibility with MM.MySQL, the predecessor of Connector/J. Use this class name when registering the driver, or when configuring a software to use MySQL Connector/J.

JDBC URL Format

The general format for a JDBC URL for connecting to a MySQL server is as follows, with items in square brackets ([ ]) being optional:

jdbc:mysql://[host1][:port1][,[host2][:port2]]...[/[database]] »
[?propertyName1=propertyValue1[&propertyName2=propertyValue2]...]

Here is a simple example for a connection URL:

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

Supply multiple hosts for a server failover setup (see Chapter 8, Multi-Host Connections for details):

# Connection URL for a server failover setup: 
jdbc:mysql//primaryhost,secondaryhost1,secondaryhost2/test

There are specialized URL schemes for configuring Connector/J's multi-host functions like load balancing and replication; here are some examples (see Chapter 8,Multi-Host Connections for details):

# Connection URL for load balancing: 
jdbc:mysql:loadbalance://localhost:3306,localhost:3310/sakila

# Connection URL for server replication: 
jdbc:mysql:replication://master,slave1,slave2,slave3/test

 

Host and Port

If no hosts are not specified, the host name defaults to 127.0.0.1. If the port for a host is not specified, it defaults to 3306, the default port number for MySQL servers.

Initial Database for Connection

If the database is not specified, the connection is made with no default database. In this case, either call the setCatalog() method on the Connection instance, or fully specify table names using the database name (that is, SELECT dbname.tablename.colname FROM dbname.tablename...) in your SQL. Opening a connection without specifying the database to use is generally only useful when building tools that work with multiple databases, such as GUI database managers.

Note

Always use the Connection.setCatalog() method to specify the desired database in JDBC applications, rather than the USE databasestatement.

IPv6 Connections

For IPv6 connections, use this alternative syntax to specify hosts in the URL (the same syntax can also be used for IPv4 connections):

jdbc:mysql://address=(key1=value)[(key2=value)]...[,address=(key3=value)[(key4=value)]...]...[/[database]]»
[?propertyName1=propertyValue1[&propertyName2=propertyValue2]...] 

Supported keys include:

  • (protocol=tcp), or (protocol=pipe) for named pipes on Windows.

  • (path=path_to_pipe) for named pipes.

  • (host=hostname) for TCP connections.

  • (port=port_number) for TCP connections.

For example:

jdbc:mysql://address=(protocol=tcp)(host=localhost)(port=3306)/db 

Keys other than the four mentioned above are treated as host-specific configuration properties, which allow per-host overrides of any configuration property set for multi-host connections (that is, when using failover, load balancing, or replication). For example:

# IPv6 Connection URL for a server failover setup: 
jdbc:mysql//address=(protocol=tcp)(host=primaryhost)(port=3306),»
address=(protocol=tcp)(host=secondaryhost1)(port=3310)(user=test2)/test

# IPv6 Connection URL for load balancing: 
jdbc:mysql:loadbalance://address=(protocol=tcp)(host=localhost)(port=3306)(user=test1),»
address=(protocol=tcp)(host=localhost)(port=3310)(user=test2)/sakila

# IPv6 Connection URL for server replication: 
jdbc:mysql:replication://address=(protocol=tcp)(host=master)(port=3306)(user=test1),»
address=(protocol=tcp)(host=slave1)(port=3310)(user=test2)/test

Limit the overrides to user, password, network timeouts, and statement and metadata cache sizes; the effects of other per-host overrides are not defined.

The ways to set the other configuration properties are the same for IPv6 and IPv4 URLs; see Setting Configuration Properties.

 

Setting Configuration Properties

Configuration properties define how Connector/J will make a connection to a MySQL server. Unless otherwise noted, properties can be set for a DataSourceobject or for a Connection object.

Configuration properties can be set in one of the following ways:

  • Using the set*() methods on MySQL implementations of java.sql.DataSource (which is the preferred method when using implementations ofjava.sql.DataSource):

    • com.mysql.jdbc.jdbc2.optional.MysqlDataSource

    • com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource

  • As a key/value pair in the java.util.Properties instance passed to DriverManager.getConnection() or Driver.connect()

  • As a JDBC URL parameter in the URL given to java.sql.DriverManager.getConnection()java.sql.Driver.connect() or the MySQL implementations of the javax.sql.DataSource setURL() method. If you specify a configuration property in the URL without providing a value for it, nothing will be set; for example, adding useServerPrepStmts alone to the URL does not make Connector/J use server-side prepared statements; you need to add useServerPrepStmts=true.

    Note

    If the mechanism you use to configure a JDBC URL is XML-based, use the XML character literal & to separate configuration parameters, as the ampersand is a reserved character for XML.

The properties are listed in the following tables.

Connection/Authentication.

Properties and Descriptions

user

The user to connect as

Since version: all versions

password

The password to use when connecting

Since version: all versions

socketFactory

The name of the class that the driver should use for creating socket connections to the server. This class must implement the interface 'com.mysql.jdbc.SocketFactory' and have public no-args constructor.

Default: com.mysql.jdbc.StandardSocketFactory

Since version: 3.0.3

connectTimeout

Timeout for socket connect (in milliseconds), with 0 being no timeout. Only works on JDK-1.4 or newer. Defaults to '0'.

Default: 0

Since version: 3.0.1

socketTimeout

Timeout on network socket operations (0, the default means no timeout).

Default: 0

Since version: 3.0.1

connectionLifecycleInterceptors

A comma-delimited list of classes that implement "com.mysql.jdbc.ConnectionLifecycleInterceptor" that should notified of connection lifecycle events (creation, destruction, commit, rollback, setCatalog and setAutoCommit) and potentially alter the execution of these commands. ConnectionLifecycleInterceptors are "stackable", more than one interceptor may be specified via the configuration property as a comma-delimited list, with the interceptors executed in order from left to right.

Since version: 5.1.4

useConfigs

Load the comma-delimited list of configuration properties before parsing the URL or applying user-specified properties. These configurations are explained in the 'Configurations' of the documentation.

Since version: 3.1.5

authenticationPlugins

Comma-delimited list of classes that implement com.mysql.jdbc.AuthenticationPlugin and which will be used for authentication unless disabled by "disabledAuthenticationPlugins" property.

Since version: 5.1.19

defaultAuthenticationPlugin

Name of a class implementing com.mysql.jdbc.AuthenticationPlugin which will be used as the default authentication plugin (see below). It is an error to use a class which is not listed in "authenticationPlugins" nor it is one of the built-in plugins. It is an error to set as default a plugin which was disabled with "disabledAuthenticationPlugins" property. It is an error to set this value to null or the empty string (i.e. there must be at least a valid default authentication plugin specified for the connection, meeting all constraints listed above).

Default: com.mysql.jdbc.authentication.MysqlNativePasswordPlugin

Since version: 5.1.19

disabledAuthenticationPlugins

Comma-delimited list of classes implementing com.mysql.jdbc.AuthenticationPlugin or mechanisms, i.e. "mysql_native_password". The authentication plugins or mechanisms listed will not be used for authentication which will fail if it requires one of them. It is an error to disable the default authentication plugin (either the one named by "defaultAuthenticationPlugin" property or the hard-coded one if "defaultAuthenticationPlugin" property is not set).

Since version: 5.1.19

disconnectOnExpiredPasswords

If "disconnectOnExpiredPasswords" is set to "false" and password is expired then server enters "sandbox" mode and sends ERR(08001, ER_MUST_CHANGE_PASSWORD) for all commands that are not needed to set a new password until a new password is set.

Default: true

Since version: 5.1.23

interactiveClient

Set the CLIENT_INTERACTIVE flag, which tells MySQL to timeout connections based on INTERACTIVE_TIMEOUT instead of WAIT_TIMEOUT

Default: false

Since version: 3.1.0

localSocketAddress

Hostname or IP address given to explicitly configure the interface that the driver will bind the client side of the TCP/IP connection to when connecting.

Since version: 5.0.5

propertiesTransform

An implementation of com.mysql.jdbc.ConnectionPropertiesTransform that the driver will use to modify URL properties passed to the driver before attempting a connection

Since version: 3.1.4

useCompression

Use zlib compression when communicating with the server (true/false)? Defaults to 'false'.

Default: false

Since version: 3.0.17

 

Networking.

Properties and Descriptions

socksProxyHost

Name or IP address of SOCKS host to connect through.

Since version: 5.1.34

socksProxyPort

Port of SOCKS server.

Default: 1080

Since version: 5.1.34

maxAllowedPacket

Maximum allowed packet size to send to server. If not set, the value of system variable 'max_allowed_packet' will be used to initialize this upon connecting. This value will not take effect if set larger than the value of 'max_allowed_packet'. Also, due to an internal dependency with the property "blobSendChunkSize", this setting has a minimum value of "8203" if "useServerPrepStmts" is set to "true".

Default: -1

Since version: 5.1.8

tcpKeepAlive

If connecting using TCP/IP, should the driver set SO_KEEPALIVE?

Default: true

Since version: 5.0.7

tcpNoDelay

If connecting using TCP/IP, should the driver set SO_TCP_NODELAY (disabling the Nagle Algorithm)?

Default: true

Since version: 5.0.7

tcpRcvBuf

If connecting using TCP/IP, should the driver set SO_RCV_BUF to the given value? The default value of '0', means use the platform default value for this property)

Default: 0

Since version: 5.0.7

tcpSndBuf

If connecting using TCP/IP, should the driver set SO_SND_BUF to the given value? The default value of '0', means use the platform default value for this property)

Default: 0

Since version: 5.0.7

tcpTrafficClass

If connecting using TCP/IP, should the driver set traffic class or type-of-service fields ?See the documentation for java.net.Socket.setTrafficClass() for more information.

Default: 0

Since version: 5.0.7

 

High Availability and Clustering.

Properties and Descriptions

autoReconnect

Should the driver try to re-establish stale and/or dead connections? If enabled the driver will throw an exception for a queries issued on a stale or dead connection, which belong to the current transaction, but will attempt reconnect before the next query issued on the connection in a new transaction. The use of this feature is not recommended, because it has side effects related to session state and data consistency when applications don't handle SQLExceptions properly, and is only designed to be used when you are unable to configure your application to handle SQLExceptions resulting from dead and stale connections properly. Alternatively, as a last option, investigate setting the MySQL server variable "wait_timeout" to a high value, rather than the default of 8 hours.

Default: false

Since version: 1.1

autoReconnectForPools

Use a reconnection strategy appropriate for connection pools (defaults to 'false')

Default: false

Since version: 3.1.3

failOverReadOnly

When failing over in autoReconnect mode, should the connection be set to 'read-only'?

Default: true

Since version: 3.0.12

maxReconnects

Maximum number of reconnects to attempt if autoReconnect is true, default is '3'.

Default: 3

Since version: 1.1

reconnectAtTxEnd

If autoReconnect is set to true, should the driver attempt reconnections at the end of every transaction?

Default: false

Since version: 3.0.10

retriesAllDown

When using loadbalancing or failover, the number of times the driver should cycle through available hosts, attempting to connect. Between cycles, the driver will pause for 250ms if no servers are available.

Default: 120

Since version: 5.1.6

initialTimeout

If autoReconnect is enabled, the initial time to wait between re-connect attempts (in seconds, defaults to '2').

Default: 2

Since version: 1.1

roundRobinLoadBalance

When autoReconnect is enabled, and failoverReadonly is false, should we pick hosts to connect to on a round-robin basis?

Default: false

Since version: 3.1.2

queriesBeforeRetryMaster

Number of queries to issue before falling back to the primary host when failed over (when using multi-host failover). Whichever condition is met first, 'queriesBeforeRetryMaster' or 'secondsBeforeRetryMaster' will cause an attempt to be made to reconnect to the primary host. Setting both properties to 0 disables the automatic fall back to the primary host at transaction boundaries. Defaults to 50.

Default: 50

Since version: 3.0.2

secondsBeforeRetryMaster

How long should the driver wait, when failed over, before attempting to reconnect to the primary host? Whichever condition is met first, 'queriesBeforeRetryMaster' or 'secondsBeforeRetryMaster' will cause an attempt to be made to reconnect to the master. Setting both properties to 0 disables the automatic fall back to the primary host at transaction boundaries. Time in seconds, defaults to 30

Default: 30

Since version: 3.0.2

allowMasterDownConnections

By default, a replication-aware connection will fail to connect when configured master hosts are all unavailable at initial connection. Setting this property to 'true' allows to establish the initial connection, by failing over to the slave servers, in read-only state. It won't prevent subsequent failures when switching back to the master hosts i.e. by setting the replication connection to read/write state.

Default: false

Since version: 5.1.27

allowSlaveDownConnections

By default, a replication-aware connection will fail to connect when configured slave hosts are all unavailable at initial connection. Setting this property to 'true' allows to establish the initial connection. It won't prevent failures when switching to slaves i.e. by setting the replication connection to read-only state. The property 'readFromMasterWhenNoSlaves' should be used for this purpose.

Default: false

Since version: 5.1.38

readFromMasterWhenNoSlaves

Replication-aware connections distribute load by using the master hosts when in read/write state and by using the slave hosts when in read-only state. If, when setting the connection to read-only state, none of the slave hosts are available, an SQLExeception is thrown back. Setting this property to 'true' allows to fail over to the master hosts, while setting the connection state to read-only, when no slave hosts are available at switch instant.

Default: false

Since version: 5.1.38

replicationEnableJMX

Enables JMX-based management of load-balanced connection groups, including live addition/removal of hosts from load-balancing pool.

Default: false

Since version: 5.1.27

selfDestructOnPingMaxOperations

=If set to a non-zero value, the driver will report close the connection and report failure when Connection.ping() or Connection.isValid(int) is called if the connection's count of commands sent to the server exceeds this value.

Default: 0

Since version: 5.1.6

selfDestructOnPingSecondsLifetime

If set to a non-zero value, the driver will report close the connection and report failure when Connection.ping() or Connection.isValid(int) is called if the connection's lifetime exceeds this value.

Default: 0

Since version: 5.1.6

resourceId

A globally unique name that identifies the resource that this datasource or connection is connected to, used for XAResource.isSameRM() when the driver can't determine this value based on hostnames used in the URL

Since version: 5.0.1

 

Security.

Properties and Descriptions

allowMultiQueries

Allow the use of ';' to delimit multiple queries during one statement (true/false), defaults to 'false', and does not affect the addBatch() and executeBatch() methods, which instead rely on rewriteBatchStatements.

Default: false

Since version: 3.1.1

useSSL

Use SSL when communicating with the server (true/false), default is 'true' when connecting to MySQL 5.5.45+, 5.6.26+ or 5.7.6+, otherwise default is 'false'

Default: false

Since version: 3.0.2

requireSSL

Require server support of SSL connection if useSSL=true? (defaults to 'false').

Default: false

Since version: 3.1.0

verifyServerCertificate

If "useSSL" is set to "true", should the driver verify the server's certificate? When using this feature, the keystore parameters should be specified by the "clientCertificateKeyStore*" properties, rather than system properties. Default is 'false' when connecting to MySQL 5.5.45+, 5.6.26+ or 5.7.6+ and "useSSL" was not explicitly set to "true". Otherwise default is 'true'

Default: true

Since version: 5.1.6

clientCertificateKeyStoreUrl

URL to the client certificate KeyStore (if not specified, use defaults)

Since version: 5.1.0

clientCertificateKeyStoreType

KeyStore type for client certificates (NULL or empty means use the default, which is "JKS". Standard keystore types supported by the JVM are "JKS" and "PKCS12", your environment may have more available depending on what security products are installed and available to the JVM.

Default: JKS

Since version: 5.1.0

clientCertificateKeyStorePassword

Password for the client certificates KeyStore

Since version: 5.1.0

trustCertificateKeyStoreUrl

URL to the trusted root certificate KeyStore (if not specified, use defaults)

Since version: 5.1.0

trustCertificateKeyStoreType

KeyStore type for trusted root certificates (NULL or empty means use the default, which is "JKS". Standard keystore types supported by the JVM are "JKS" and "PKCS12", your environment may have more available depending on what security products are installed and available to the JVM.

Default: JKS

Since version: 5.1.0

trustCertificateKeyStorePassword

Password for the trusted root certificates KeyStore

Since version: 5.1.0

enabledSSLCipherSuites

If "useSSL" is set to "true", overrides the cipher suites enabled for use on the underlying SSL sockets. This may be required when using external JSSE providers or to specify cipher suites compatible with both MySQL server and used JVM.

Since version: 5.1.35

allowLoadLocalInfile

Should the driver allow use of 'LOAD DATA LOCAL INFILE...' (defaults to 'true').

Default: true

Since version: 3.0.3

allowUrlInLocalInfile

Should the driver allow URLs in 'LOAD DATA LOCAL INFILE' statements?

Default: false

Since version: 3.1.4

allowPublicKeyRetrieval

Allows special handshake roundtrip to get server RSA public key directly from server.

Default: false

Since version: 5.1.31

paranoid

Take measures to prevent exposure sensitive information in error messages and clear data structures holding sensitive data when possible? (defaults to 'false')

Default: false

Since version: 3.0.1

passwordCharacterEncoding

What character encoding is used for passwords? Leaving this set to the default value (null), uses the value set in "characterEncoding" if there is one, otherwise uses UTF-8 as default encoding. If the password contains non-ASCII characters, the password encoding must match what server encoding was set to when the password was created. For passwords in other character encodings, the encoding will have to be specified with this property (or with "characterEncoding"), as it's not possible for the driver to auto-detect this.

Since version: 5.1.7

serverRSAPublicKeyFile

File path to the server RSA public key file for sha256_password authentication. If not specified, the public key will be retrieved from the server.

Since version: 5.1.31

 

Performance Extensions.

Properties and Descriptions

callableStmtCacheSize

If 'cacheCallableStmts' is enabled, how many callable statements should be cached?

Default: 100

Since version: 3.1.2

metadataCacheSize

The number of queries to cache ResultSetMetadata for if cacheResultSetMetaData is set to 'true' (default 50)

Default: 50

Since version: 3.1.1

useLocalSessionState

Should the driver refer to the internal values of autocommit and transaction isolation that are set by Connection.setAutoCommit() and Connection.setTransactionIsolation() and transaction state as maintained by the protocol, rather than querying the database or blindly sending commands to the database for commit() or rollback() method calls?

Default: false

Since version: 3.1.7

useLocalTransactionState

Should the driver use the in-transaction state provided by the MySQL protocol to determine if a commit() or rollback() should actually be sent to the database?

Default: false

Since version: 5.1.7

prepStmtCacheSize

If prepared statement caching is enabled, how many prepared statements should be cached?

Default: 25

Since version: 3.0.10

prepStmtCacheSqlLimit

If prepared statement caching is enabled, what's the largest SQL the driver will cache the parsing for?

Default: 256

Since version: 3.0.10

parseInfoCacheFactory

Name of a class implementing com.mysql.jdbc.CacheAdapterFactory, which will be used to create caches for the parsed representation of client-side prepared statements.

Default: com.mysql.jdbc.PerConnectionLRUFactory

Since version: 5.1.1

serverConfigCacheFactory

Name of a class implementing com.mysql.jdbc.CacheAdapterFactory<String, Map<String, String>>, which will be used to create caches for MySQL server configuration values

Default: com.mysql.jdbc.PerVmServerConfigCacheFactory

Since version: 5.1.1

alwaysSendSetIsolation

Should the driver always communicate with the database when Connection.setTransactionIsolation() is called? If set to false, the driver will only communicate with the database when the requested transaction isolation is different than the whichever is newer, the last value that was set via Connection.setTransactionIsolation(), or the value that was read from the server when the connection was established. Note that useLocalSessionState=true will force the same behavior as alwaysSendSetIsolation=false, regardless of how alwaysSendSetIsolation is set.

Default: true

Since version: 3.1.7

maintainTimeStats

Should the driver maintain various internal timers to enable idle time calculations as well as more verbose error messages when the connection to the server fails? Setting this property to false removes at least two calls to System.getCurrentTimeMillis() per query.

Default: true

Since version: 3.1.9

useCursorFetch

If connected to MySQL > 5.0.2, and setFetchSize() > 0 on a statement, should that statement use cursor-based fetching to retrieve rows?

Default: false

Since version: 5.0.0

blobSendChunkSize

Chunk size to use when sending BLOB/CLOBs via ServerPreparedStatements. Note that this value cannot exceed the value of "maxAllowedPacket" and, if that is the case, then this value will be corrected automatically.

Default: 1048576

Since version: 3.1.9

cacheCallableStmts

Should the driver cache the parsing stage of CallableStatements

Default: false

Since version: 3.1.2

cachePrepStmts

Should the driver cache the parsing stage of PreparedStatements of client-side prepared statements, the "check" for suitability of server-side prepared and server-side prepared statements themselves?

Default: false

Since version: 3.0.10

cacheResultSetMetadata

Should the driver cache ResultSetMetaData for Statements and PreparedStatements? (Req. JDK-1.4+, true/false, default 'false')

Default: false

Since version: 3.1.1

cacheServerConfiguration

Should the driver cache the results of 'SHOW VARIABLES' and 'SHOW COLLATION' on a per-URL basis?

Default: false

Since version: 3.1.5

defaultFetchSize

The driver will call setFetchSize(n) with this value on all newly-created Statements

Default: 0

Since version: 3.1.9

dontCheckOnDuplicateKeyUpdateInSQL

Stops checking if every INSERT statement contains the "ON DUPLICATE KEY UPDATE" clause. As a side effect, obtaining the statement's generated keys information will return a list where normally it wouldn't. Also be aware that, in this case, the list of generated keys returned may not be accurate. The effect of this property is canceled if set simultaneously with 'rewriteBatchedStatements=true'.

Default: false

Since version: 5.1.32

dontTrackOpenResources

The JDBC specification requires the driver to automatically track and close resources, however if your application doesn't do a good job of explicitly calling close() on statements or result sets, this can cause memory leakage. Setting this property to true relaxes this constraint, and can be more memory efficient for some applications. Also the automatic closing of the Statement and current ResultSet in Statement.closeOnCompletion() and Statement.getMoreResults ([Statement.CLOSE_CURRENT_RESULT | Statement.CLOSE_ALL_RESULTS]), respectively, ceases to happen. This property automatically sets holdResultsOpenOverStatementClose=true.

Default: false

Since version: 3.1.7

dynamicCalendars

Should the driver retrieve the default calendar when required, or cache it per connection/session?

Default: false

Since version: 3.1.5

elideSetAutoCommits

If using MySQL-4.1 or newer, should the driver only issue 'set autocommit=n' queries when the server's state doesn't match the requested state by Connection.setAutoCommit(boolean)?

Default: false

Since version: 3.1.3

enableEscapeProcessing

Sets the default escape processing behavior for Statement objects. The method Statement.setEscapeProcessing() can be used to specify the escape processing behavior for an individual Statement object. Default escape processing behavior in prepared statements must be defined with the property 'processEscapeCodesForPrepStmts'.

Default: true

Since version: 5.1.37

enableQueryTimeouts

When enabled, query timeouts set via Statement.setQueryTimeout() use a shared java.util.Timer instance for scheduling. Even if the timeout doesn't expire before the query is processed, there will be memory used by the TimerTask for the given timeout which won't be reclaimed until the time the timeout would have expired if it hadn't been cancelled by the driver. High-load environments might want to consider disabling this functionality.

Default: true

Since version: 5.0.6

holdResultsOpenOverStatementClose

Should the driver close result sets on Statement.close() as required by the JDBC specification?

Default: false

Since version: 3.1.7

largeRowSizeThreshold

What size result set row should the JDBC driver consider "large", and thus use a more memory-efficient way of representing the row internally?

Default: 2048

Since version: 5.1.1

loadBalanceStrategy

If using a load-balanced connection to connect to SQL nodes in a MySQL Cluster/NDB configuration (by using the URL prefix "jdbc:mysql:loadbalance://"), which load balancing algorithm should the driver use: (1) "random" - the driver will pick a random host for each request. This tends to work better than round-robin, as the randomness will somewhat account for spreading loads where requests vary in response time, while round-robin can sometimes lead to overloaded nodes if there are variations in response times across the workload. (2) "bestResponseTime" - the driver will route the request to the host that had the best response time for the previous transaction.

Default: random

Since version: 5.0.6

locatorFetchBufferSize

If 'emulateLocators' is configured to 'true', what size buffer should be used when fetching BLOB data for getBinaryInputStream?

Default: 1048576

Since version: 3.2.1

readOnlyPropagatesToServer

Should the driver issue appropriate statements to implicitly set the transaction access mode on server side when Connection.setReadOnly() is called? Setting this property to 'true' enables InnoDB read-only potential optimizations but also requires an extra roundtrip to set the right transaction state. Even if this property is set to 'false', the driver will do its best effort to prevent the execution of database-state-changing queries. Requires minimum of MySQL 5.6.

Default: true

Since version: 5.1.35

rewriteBatchedStatements

Should the driver use multiqueries (irregardless of the setting of "allowMultiQueries") as well as rewriting of prepared statements for INSERT into multi-value inserts when executeBatch() is called? Notice that this has the potential for SQL injection if using plain java.sql.Statements and your code doesn't sanitize input correctly. Notice that for prepared statements, server-side prepared statements can not currently take advantage of this rewrite option, and that if you don't specify stream lengths when using PreparedStatement.set*Stream(), the driver won't be able to determine the optimum number of parameters per batch and you might receive an error from the driver that the resultant packet is too large. Statement.getGeneratedKeys() for these rewritten statements only works when the entire batch includes INSERT statements. Please be aware using rewriteBatchedStatements=true with INSERT .. ON DUPLICATE KEY UPDATE that for rewritten statement server returns only one value as sum of all affected (or found) rows in batch and it isn't possible to map it correctly to initial statements; in this case driver returns 0 as a result of each batch statement if total count was 0, and the Statement.SUCCESS_NO_INFO as a result of each batch statement if total count was > 0.

Default: false

Since version: 3.1.13

useDirectRowUnpack

Use newer result set row unpacking code that skips a copy from network buffers to a MySQL packet instance and instead reads directly into the result set row data buffers.

Default: true

Since version: 5.1.1

useDynamicCharsetInfo

Should the driver use a per-connection cache of character set information queried from the server when necessary, or use a built-in static mapping that is more efficient, but isn't aware of custom character sets or character sets implemented after the release of the JDBC driver?

Default: true

Since version: 5.0.6

useFastDateParsing

Use internal String->Date/Time/Timestamp conversion routines to avoid excessive object creation? This is part of the legacy date-time code, thus the property has an effect only when "useLegacyDatetimeCode=true."

Default: true

Since version: 5.0.5

useFastIntParsing

Use internal String->Integer conversion routines to avoid excessive object creation?

Default: true

Since version: 3.1.4

useJvmCharsetConverters

Always use the character encoding routines built into the JVM, rather than using lookup tables for single-byte character sets?

Default: false

Since version: 5.0.1

useReadAheadInput

Use newer, optimized non-blocking, buffered input stream when reading from the server?

Default: true

Since version: 3.1.5

 

Debugging/Profiling.

Properties and Descriptions

logger

The name of a class that implements "com.mysql.jdbc.log.Log" that will be used to log messages to. (default is "com.mysql.jdbc.log.StandardLogger", which logs to STDERR)

Default: com.mysql.jdbc.log.StandardLogger

Since version: 3.1.1

gatherPerfMetrics

Should the driver gather performance metrics, and report them via the configured logger every 'reportMetricsIntervalMillis' milliseconds?

Default: false

Since version: 3.1.2

profileSQL

Trace queries and their execution/fetch times to the configured logger (true/false) defaults to 'false'

Default: false

Since version: 3.1.0

profileSql

Deprecated, use 'profileSQL' instead. Trace queries and their execution/fetch times on STDERR (true/false) defaults to 'false'

Since version: 2.0.14

reportMetricsIntervalMillis

If 'gatherPerfMetrics' is enabled, how often should they be logged (in ms)?

Default: 30000

Since version: 3.1.2

maxQuerySizeToLog

Controls the maximum length/size of a query that will get logged when profiling or tracing

Default: 2048

Since version: 3.1.3

packetDebugBufferSize

The maximum number of packets to retain when 'enablePacketDebug' is true

Default: 20

Since version: 3.1.3

slowQueryThresholdMillis

If 'logSlowQueries' is enabled, how long should a query (in ms) before it is logged as 'slow'?

Default: 2000

Since version: 3.1.2

slowQueryThresholdNanos

If 'useNanosForElapsedTime' is set to true, and this property is set to a non-zero value, the driver will use this threshold (in nanosecond units) to determine if a query was slow.

Default: 0

Since version: 5.0.7

useUsageAdvisor

Should the driver issue 'usage' warnings advising proper and efficient usage of JDBC and MySQL Connector/J to the log (true/false, defaults to 'false')?

Default: false

Since version: 3.1.1

autoGenerateTestcaseScript

Should the driver dump the SQL it is executing, including server-side prepared statements to STDERR?

Default: false

Since version: 3.1.9

autoSlowLog

Instead of using slowQueryThreshold* to determine if a query is slow enough to be logged, maintain statistics that allow the driver to determine queries that are outside the 99th percentile?

Default: true

Since version: 5.1.4

clientInfoProvider

The name of a class that implements the com.mysql.jdbc.JDBC4ClientInfoProvider interface in order to support JDBC-4.0's Connection.get/setClientInfo() methods

Default: com.mysql.jdbc.JDBC4CommentClientInfoProvider

Since version: 5.1.0

dumpMetadataOnColumnNotFound

Should the driver dump the field-level metadata of a result set into the exception message when ResultSet.findColumn() fails?

Default: false

Since version: 3.1.13

dumpQueriesOnException

Should the driver dump the contents of the query sent to the server in the message for SQLExceptions?

Default: false

Since version: 3.1.3

enablePacketDebug

When enabled, a ring-buffer of 'packetDebugBufferSize' packets will be kept, and dumped when exceptions are thrown in key areas in the driver's code

Default: false

Since version: 3.1.3

explainSlowQueries

If 'logSlowQueries' is enabled, should the driver automatically issue an 'EXPLAIN' on the server and send the results to the configured log at a WARN level?

Default: false

Since version: 3.1.2

includeInnodbStatusInDeadlockExceptions

Include the output of "SHOW ENGINE INNODB STATUS" in exception messages when deadlock exceptions are detected?

Default: false

Since version: 5.0.7

includeThreadDumpInDeadlockExceptions

Include a current Java thread dump in exception messages when deadlock exceptions are detected?

Default: false

Since version: 5.1.15

includeThreadNamesAsStatementComment

Include the name of the current thread as a comment visible in "SHOW PROCESSLIST", or in Innodb deadlock dumps, useful in correlation with "includeInnodbStatusInDeadlockExceptions=true" and "includeThreadDumpInDeadlockExceptions=true".

Default: false

Since version: 5.1.15

logSlowQueries

Should queries that take longer than 'slowQueryThresholdMillis' be logged?

Default: false

Since version: 3.1.2

logXaCommands

Should the driver log XA commands sent by MysqlXaConnection to the server, at the DEBUG level of logging?

Default: false

Since version: 5.0.5

profilerEventHandler

Name of a class that implements the interface com.mysql.jdbc.profiler.ProfilerEventHandler that will be used to handle profiling/tracing events.

Default: com.mysql.jdbc.profiler.LoggingProfilerEventHandler

Since version: 5.1.6

resultSetSizeThreshold

If the usage advisor is enabled, how many rows should a result set contain before the driver warns that it is suspiciously large?

Default: 100

Since version: 5.0.5

traceProtocol

Should trace-level network protocol be logged?

Default: false

Since version: 3.1.2

useNanosForElapsedTime

For profiling/debugging functionality that measures elapsed time, should the driver try to use nanoseconds resolution if available (JDK >= 1.5)?

Default: false

Since version: 5.0.7

 

Miscellaneous.

Properties and Descriptions

useUnicode

Should the driver use Unicode character encodings when handling strings? Should only be used when the driver can't determine the character set mapping, or you are trying to 'force' the driver to use a character set that MySQL either doesn't natively support (such as UTF-8), true/false, defaults to 'true'

Default: true

Since version: 1.1g

characterEncoding

If 'useUnicode' is set to true, what character encoding should the driver use when dealing with strings? (defaults is to 'autodetect')

Since version: 1.1g

characterSetResults

Character set to tell the server to return results as.

Since version: 3.0.13

connectionAttributes

A comma-delimited list of user-defined key:value pairs (in addition to standard MySQL-defined key:value pairs) to be passed to MySQL Server for display as connection attributes in the PERFORMANCE_SCHEMA.SESSION_CONNECT_ATTRS table. Example usage: connectionAttributes=key1:value1,key2:value2 This functionality is available for use with MySQL Server version 5.6 or later only. Earlier versions of MySQL Server do not support connection attributes, causing this configuration option to be ignored. Setting connectionAttributes=none will cause connection attribute processing to be bypassed, for situations where Connection creation/initialization speed is critical.

Since version: 5.1.25

connectionCollation

If set, tells the server to use this collation via 'set collation_connection'

Since version: 3.0.13

useBlobToStoreUTF8OutsideBMP

Tells the driver to treat [MEDIUM/LONG]BLOB columns as [LONG]VARCHAR columns holding text encoded in UTF-8 that has characters outside the BMP (4-byte encodings), which MySQL server can't handle natively.

Default: false

Since version: 5.1.3

utf8OutsideBmpExcludedColumnNamePattern

When "useBlobToStoreUTF8OutsideBMP" is set to "true", column names matching the given regex will still be treated as BLOBs unless they match the regex specified for "utf8OutsideBmpIncludedColumnNamePattern". The regex must follow the patterns used for the java.util.regex package.

Since version: 5.1.3

utf8OutsideBmpIncludedColumnNamePattern

Used to specify exclusion rules to "utf8OutsideBmpExcludedColumnNamePattern". The regex must follow the patterns used for the java.util.regex package.

Since version: 5.1.3

loadBalanceEnableJMX

Enables JMX-based management of load-balanced connection groups, including live addition/removal of hosts from load-balancing pool.

Default: false

Since version: 5.1.13

sessionVariables

A comma-separated list of name/value pairs to be sent as SET SESSION ... to the server when the driver connects.

Since version: 3.1.8

useColumnNamesInFindColumn

Prior to JDBC-4.0, the JDBC specification had a bug related to what could be given as a "column name" to ResultSet methods like findColumn(), or getters that took a String property. JDBC-4.0 clarified "column name" to mean the label, as given in an "AS" clause and returned by ResultSetMetaData.getColumnLabel(), and if no AS clause, the column name. Setting this property to "true" will give behavior that is congruent to JDBC-3.0 and earlier versions of the JDBC specification, but which because of the specification bug could give unexpected results. This property is preferred over "useOldAliasMetadataBehavior" unless you need the specific behavior that it provides with respect to ResultSetMetadata.

Default: false

Since version: 5.1.7

allowNanAndInf

Should the driver allow NaN or +/- INF values in PreparedStatement.setDouble()?

Default: false

Since version: 3.1.5

autoClosePStmtStreams

Should the driver automatically call .close() on streams/readers passed as arguments via set*() methods?

Default: false

Since version: 3.1.12

autoDeserialize

Should the driver automatically detect and de-serialize objects stored in BLOB fields?

Default: false

Since version: 3.1.5

blobsAreStrings

Should the driver always treat BLOBs as Strings - specifically to work around dubious metadata returned by the server for GROUP BY clauses?

Default: false

Since version: 5.0.8

cacheDefaultTimezone

Caches client's default time zone. This results in better performance when dealing with time zone conversions in Date and Time data types, however it won't be aware of time zone changes if they happen at runtime.

Default: true

Since version: 5.1.35

capitalizeTypeNames

Capitalize type names in DatabaseMetaData? (usually only useful when using WebObjects, true/false, defaults to 'false')

Default: true

Since version: 2.0.7

clobCharacterEncoding

The character encoding to use for sending and retrieving TEXT, MEDIUMTEXT and LONGTEXT values instead of the configured connection characterEncoding

Since version: 5.0.0

clobberStreamingResults

This will cause a 'streaming' ResultSet to be automatically closed, and any outstanding data still streaming from the server to be discarded if another query is executed before all the data has been read from the server.

Default: false

Since version: 3.0.9

compensateOnDuplicateKeyUpdateCounts

Should the driver compensate for the update counts of "ON DUPLICATE KEY" INSERT statements (2 = 1, 0 = 1) when using prepared statements?

Default: false

Since version: 5.1.7

continueBatchOnError

Should the driver continue processing batch commands if one statement fails. The JDBC spec allows either way (defaults to 'true').

Default: true

Since version: 3.0.3

createDatabaseIfNotExist

Creates the database given in the URL if it doesn't yet exist. Assumes the configured user has permissions to create databases.

Default: false

Since version: 3.1.9

detectCustomCollations

Should the driver detect custom charsets/collations installed on server (true/false, defaults to 'false'). If this option set to 'true' driver gets actual charsets/collations from server each time connection establishes. This could slow down connection initialization significantly.

Default: false

Since version: 5.1.29

emptyStringsConvertToZero

Should the driver allow conversions from empty string fields to numeric values of '0'?

Default: true

Since version: 3.1.8

emulateLocators

Should the driver emulate java.sql.Blobs with locators? With this feature enabled, the driver will delay loading the actual Blob data until the one of the retrieval methods (getInputStream(), getBytes(), and so forth) on the blob data stream has been accessed. For this to work, you must use a column alias with the value of the column to the actual name of the Blob. The feature also has the following restrictions: The SELECT that created the result set must reference only one table, the table must have a primary key; the SELECT must alias the original blob column name, specified as a string, to an alternate name; the SELECT must cover all columns that make up the primary key.

Default: false

Since version: 3.1.0

emulateUnsupportedPstmts

Should the driver detect prepared statements that are not supported by the server, and replace them with client-side emulated versions?

Default: true

Since version: 3.1.7

exceptionInterceptors

Comma-delimited list of classes that implement com.mysql.jdbc.ExceptionInterceptor. These classes will be instantiated one per Connection instance, and all SQLExceptions thrown by the driver will be allowed to be intercepted by these interceptors, in a chained fashion, with the first class listed as the head of the chain.

Since version: 5.1.8

functionsNeverReturnBlobs

Should the driver always treat data from functions returning BLOBs as Strings - specifically to work around dubious metadata returned by the server for GROUP BY clauses?

Default: false

Since version: 5.0.8

generateSimpleParameterMetadata

Should the driver generate simplified parameter metadata for PreparedStatements when no metadata is available either because the server couldn't support preparing the statement, or server-side prepared statements are disabled?

Default: false

Since version: 5.0.5

getProceduresReturnsFunctions

Pre-JDBC4 DatabaseMetaData API has only the getProcedures() and getProcedureColumns() methods, so they return metadata info for both stored procedures and functions. JDBC4 was extended with the getFunctions() and getFunctionColumns() methods and the expected behaviours of previous methods are not well defined. For JDBC4 and higher, default 'true' value of the option means that calls of DatabaseMetaData.getProcedures() and DatabaseMetaData.getProcedureColumns() return metadata for both procedures and functions as before, keeping backward compatibility. Setting this property to 'false' decouples Connector/J from its pre-JDBC4 behaviours for DatabaseMetaData.getProcedures() and DatabaseMetaData.getProcedureColumns(), forcing them to return metadata for procedures only.

Default: true

Since version: 5.1.26

ignoreNonTxTables

Ignore non-transactional table warning for rollback? (defaults to 'false').

Default: false

Since version: 3.0.9

jdbcCompliantTruncation

Should the driver throw java.sql.DataTruncation exceptions when data is truncated as is required by the JDBC specification when connected to a server that supports warnings (MySQL 4.1.0 and newer)? This property has no effect if the server sql-mode includes STRICT_TRANS_TABLES.

Default: true

Since version: 3.1.2

loadBalanceAutoCommitStatementRegex

When load-balancing is enabled for auto-commit statements (via loadBalanceAutoCommitStatementThreshold), the statement counter will only increment when the SQL matches the regular expression. By default, every statement issued matches.

Since version: 5.1.15

loadBalanceAutoCommitStatementThreshold

When auto-commit is enabled, the number of statements which should be executed before triggering load-balancing to rebalance. Default value of 0 causes load-balanced connections to only rebalance when exceptions are encountered, or auto-commit is disabled and transactions are explicitly committed or rolled back.

Default: 0

Since version: 5.1.15

loadBalanceBlacklistTimeout

Time in milliseconds between checks of servers which are unavailable, by controlling how long a server lives in the global blacklist.

Default: 0

Since version: 5.1.0

loadBalanceConnectionGroup

Logical group of load-balanced connections within a classloader, used to manage different groups independently. If not specified, live management of load-balanced connections is disabled.

Since version: 5.1.13

loadBalanceExceptionChecker

Fully-qualified class name of custom exception checker. The class must implement com.mysql.jdbc.LoadBalanceExceptionChecker interface, and is used to inspect SQLExceptions and determine whether they should trigger fail-over to another host in a load-balanced deployment.

Default: com.mysql.jdbc.StandardLoadBalanceExceptionChecker

Since version: 5.1.13

loadBalancePingTimeout

Time in milliseconds to wait for ping response from each of load-balanced physical connections when using load-balanced Connection.

Default: 0

Since version: 5.1.13

loadBalanceSQLExceptionSubclassFailover

Comma-delimited list of classes/interfaces used by default load-balanced exception checker to determine whether a given SQLException should trigger failover. The comparison is done using Class.isInstance(SQLException) using the thrown SQLException.

Since version: 5.1.13

loadBalanceSQLStateFailover

Comma-delimited list of SQLState codes used by default load-balanced exception checker to determine whether a given SQLException should trigger failover. The SQLState of a given SQLException is evaluated to determine whether it begins with any value in the comma-delimited list.

Since version: 5.1.13

loadBalanceValidateConnectionOnSwapServer

Should the load-balanced Connection explicitly check whether the connection is live when swapping to a new physical connection at commit/rollback?

Default: false

Since version: 5.1.13

maxRows

The maximum number of rows to return (0, the default means return all rows).

Default: -1

Since version: all versions

netTimeoutForStreamingResults

What value should the driver automatically set the server setting 'net_write_timeout' to when the streaming result sets feature is in use? (value has unit of seconds, the value '0' means the driver will not try and adjust this value)

Default: 600

Since version: 5.1.0

noAccessToProcedureBodies

When determining procedure parameter types for CallableStatements, and the connected user can't access procedure bodies through "SHOW CREATE PROCEDURE" or select on mysql.proc should the driver instead create basic metadata (all parameters reported as IN VARCHARs, but allowing registerOutParameter() to be called on them anyway) instead of throwing an exception?

Default: false

Since version: 5.0.3

noDatetimeStringSync

Don't ensure that ResultSet.getDatetimeType().toString().equals(ResultSet.getString())

Default: false

Since version: 3.1.7

noTimezoneConversionForDateType

Don't convert DATE values using the server time zone if 'useTimezone'='true' or 'useLegacyDatetimeCode'='false'

Default: true

Since version: 5.1.35

noTimezoneConversionForTimeType

Don't convert TIME values using the server time zone if 'useTimezone'='true'

Default: false

Since version: 5.0.0

nullCatalogMeansCurrent

When DatabaseMetadataMethods ask for a 'catalog' parameter, does the value null mean use the current catalog? (this is not JDBC-compliant, but follows legacy behavior from earlier versions of the driver)

Default: true

Since version: 3.1.8

nullNamePatternMatchesAll

Should DatabaseMetaData methods that accept *pattern parameters treat null the same as '%' (this is not JDBC-compliant, however older versions of the driver accepted this departure from the specification)

Default: true

Since version: 3.1.8

overrideSupportsIntegrityEnhancementFacility

Should the driver return "true" for DatabaseMetaData.supportsIntegrityEnhancementFacility() even if the database doesn't support it to workaround applications that require this method to return "true" to signal support of foreign keys, even though the SQL specification states that this facility contains much more than just foreign key support (one such application being OpenOffice)?

Default: false

Since version: 3.1.12

padCharsWithSpace

If a result set column has the CHAR type and the value does not fill the amount of characters specified in the DDL for the column, should the driver pad the remaining characters with space (for ANSI compliance)?

Default: false

Since version: 5.0.6

pedantic

Follow the JDBC spec to the letter.

Default: false

Since version: 3.0.0

pinGlobalTxToPhysicalConnection

When using XAConnections, should the driver ensure that operations on a given XID are always routed to the same physical connection? This allows the XAConnection to support "XA START ... JOIN" after "XA END" has been called

Default: false

Since version: 5.0.1

populateInsertRowWithDefaultValues

When using ResultSets that are CONCUR_UPDATABLE, should the driver pre-populate the "insert" row with default values from the DDL for the table used in the query so those values are immediately available for ResultSet accessors? This functionality requires a call to the database for metadata each time a result set of this type is created. If disabled (the default), the default values will be populated by the an internal call to refreshRow() which pulls back default values and/or values changed by triggers.

Default: false

Since version: 5.0.5

processEscapeCodesForPrepStmts

Should the driver process escape codes in queries that are prepared? Default escape processing behavior in non-prepared statements must be defined with the property 'enableEscapeProcessing'.

Default: true

Since version: 3.1.12

queryTimeoutKillsConnection

If the timeout given in Statement.setQueryTimeout() expires, should the driver forcibly abort the Connection instead of attempting to abort the query?

Default: false

Since version: 5.1.9

relaxAutoCommit

If the version of MySQL the driver connects to does not support transactions, still allow calls to commit(), rollback() and setAutoCommit() (true/false, defaults to 'false')?

Default: false

Since version: 2.0.13

retainStatementAfterResultSetClose

Should the driver retain the Statement reference in a ResultSet after ResultSet.close() has been called. This is not JDBC-compliant after JDBC-4.0.

Default: false

Since version: 3.1.11

rollbackOnPooledClose

Should the driver issue a rollback() when the logical connection in a pool is closed?

Default: true

Since version: 3.0.15

runningCTS13

Enables workarounds for bugs in Sun's JDBC compliance testsuite version 1.3

Default: false

Since version: 3.1.7

sendFractionalSeconds

Send fractional part from TIMESTAMP seconds. If set to false, the nanoseconds value of TIMESTAMP values will be truncated before sending any data to the server. This option applies only to prepared statements, callable statements or updatable result sets.

Default: true

Since version: 5.1.37

serverTimezone

Override detection/mapping of time zone. Used when time zone from server doesn't map to Java time zone

Since version: 3.0.2

statementInterceptors

A comma-delimited list of classes that implement "com.mysql.jdbc.StatementInterceptor" that should be placed "in between" query execution to influence the results. StatementInterceptors are "chainable", the results returned by the "current" interceptor will be passed on to the next in in the chain, from left-to-right order, as specified in this property.

Since version: 5.1.1

strictFloatingPoint

Used only in older versions of compliance test

Default: false

Since version: 3.0.0

strictUpdates

Should the driver do strict checking (all primary keys selected) of updatable result sets (true, false, defaults to 'true')?

Default: true

Since version: 3.0.4

tinyInt1isBit

Should the driver treat the datatype TINYINT(1) as the BIT type (because the server silently converts BIT -> TINYINT(1) when creating tables)?

Default: true

Since version: 3.0.16

transformedBitIsBoolean

If the driver converts TINYINT(1) to a different type, should it use BOOLEAN instead of BIT for future compatibility with MySQL-5.0, as MySQL-5.0 has a BIT type?

Default: false

Since version: 3.1.9

treatUtilDateAsTimestamp

Should the driver treat java.util.Date as a TIMESTAMP for the purposes of PreparedStatement.setObject()?

Default: true

Since version: 5.0.5

ultraDevHack

Create PreparedStatements for prepareCall() when required, because UltraDev is broken and issues a prepareCall() for _all_ statements? (true/false, defaults to 'false')

Default: false

Since version: 2.0.3

useAffectedRows

Don't set the CLIENT_FOUND_ROWS flag when connecting to the server (not JDBC-compliant, will break most applications that rely on "found" rows vs. "affected rows" for DML statements), but does cause "correct" update counts from "INSERT ... ON DUPLICATE KEY UPDATE" statements to be returned by the server.

Default: false

Since version: 5.1.7

useGmtMillisForDatetimes

Convert between session time zone and GMT before creating Date and Timestamp instances (value of 'false' leads to legacy behavior, 'true' leads to more JDBC-compliant behavior)? This is part of the legacy date-time code, thus the property has an effect only when "useLegacyDatetimeCode=true."

Default: false

Since version: 3.1.12

useHostsInPrivileges

Add '@hostname' to users in DatabaseMetaData.getColumn/TablePrivileges() (true/false), defaults to 'true'.

Default: true

Since version: 3.0.2

useInformationSchema

When connected to MySQL-5.0.7 or newer, should the driver use the INFORMATION_SCHEMA to derive information used by DatabaseMetaData?

Default: false

Since version: 5.0.0

useJDBCCompliantTimezoneShift

Should the driver use JDBC-compliant rules when converting TIME/TIMESTAMP/DATETIME values' time zone information for those JDBC arguments which take a java.util.Calendar argument? This is part of the legacy date-time code, thus the property has an effect only when "useLegacyDatetimeCode=true."

Default: false

Since version: 5.0.0

useLegacyDatetimeCode

Use code for DATE/TIME/DATETIME/TIMESTAMP handling in result sets and statements that consistently handles time zone conversions from client to server and back again, or use the legacy code for these datatypes that has been in the driver for backwards-compatibility? Setting this property to 'false' voids the effects of "useTimezone," "useJDBCCompliantTimezoneShift," "useGmtMillisForDatetimes," and "useFastDateParsing."

Default: true

Since version: 5.1.6

useOldAliasMetadataBehavior

Should the driver use the legacy behavior for "AS" clauses on columns and tables, and only return aliases (if any) for ResultSetMetaData.getColumnName() or ResultSetMetaData.getTableName() rather than the original column/table name? In 5.0.x, the default value was true.

Default: false

Since version: 5.0.4

useOldUTF8Behavior

Use the UTF-8 behavior the driver did when communicating with 4.0 and older servers

Default: false

Since version: 3.1.6

useOnlyServerErrorMessages

Don't prepend 'standard' SQLState error messages to error messages returned by the server.

Default: true

Since version: 3.0.15

useSSPSCompatibleTimezoneShift

If migrating from an environment that was using server-side prepared statements, and the configuration property "useJDBCCompliantTimeZoneShift" set to "true", use compatible behavior when not using server-side prepared statements when sending TIMESTAMP values to the MySQL server.

Default: false

Since version: 5.0.5

useServerPrepStmts

Use server-side prepared statements if the server supports them?

Default: false

Since version: 3.1.0

useSqlStateCodes

Use SQL Standard state codes instead of 'legacy' X/Open/SQL state codes (true/false), default is 'true'

Default: true

Since version: 3.1.3

useStreamLengthsInPrepStmts

Honor stream length parameter in PreparedStatement/ResultSet.setXXXStream() method calls (true/false, defaults to 'true')?

Default: true

Since version: 3.0.2

useTimezone

Convert time/date types between client and server time zones (true/false, defaults to 'false')? This is part of the legacy date-time code, thus the property has an effect only when "useLegacyDatetimeCode=true."

Default: false

Since version: 3.0.2

useUnbufferedInput

Don't use BufferedInputStream for reading data from the server

Default: true

Since version: 3.0.11

yearIsDateType

Should the JDBC driver treat the MySQL type "YEAR" as a java.sql.Date, or as a SHORT?

Default: true

Since version: 3.1.9

zeroDateTimeBehavior

What should happen when the driver encounters DATETIME values that are composed entirely of zeros (used by MySQL to represent invalid dates)? Valid values are "exception", "round" and "convertToNull".

Default: exception

Since version: 3.1.4

 

Connector/J also supports access to MySQL using named pipes on Windows platforms with the NamedPipeSocketFactory as a plugin-socket factory. If you do not use a namedPipePath property, the default of '\\.\pipe\MySQL' is used. If you use the NamedPipeSocketFactory, the host name and port number values in the JDBC URL are ignored. To enable this feature, set the socketFactory property:

socketFactory=com.mysql.jdbc.NamedPipeSocketFactory

 

Named pipes only work when connecting to a MySQL server on the same physical machine where the JDBC driver is running. In simple performance tests, named pipe access is between 30%-50% faster than the standard TCP/IP access. However, this varies per system, and named pipes are slower than TCP/IP in many Windows configurations.

To create your own socket factories, follow the example code in com.mysql.jdbc.NamedPipeSocketFactory, orcom.mysql.jdbc.StandardSocketFactory.

分享到:
评论

相关推荐

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

    JDBC连接数据库各种数据库参数大全 1、Oracle8/8i/9i数据库(thin模式) 2、DB2数据库 3、Sql Server7.0/2000数据库 4、Sybase数据库 5、Informix数据库 6、MySQL数据库 7、PostgreSQL...

    mysql jdbc连接步骤及常见参数

    主要介绍了mysql jdbc连接步骤及常见参数,需要的朋友可以参考下

    jdbc连接池配置(优化连接速度)

    jdbc数据库连接池,方便连接数据库,优化数据库连接速度。

    MySQL&MS SQLServer驱动及常用数据库JDBC连接写法

    MySQL&MS SQLServer驱动及常用数据库JDBC连接写法

    JDBC连接操作Oracle及Mysql详解

    JDBC连接Oracle 11g及Mysql5,涉及传参,反射,读取属性文件,预处理,(预处理)批处理,带参数的存储过程,事务处理,可滚动的结果集,可更新的结果集

    oracle jdbc mysql 等数据连接所有的配置

    几种数据库jdbc连接时所用,希望对你们有用

    java连接MySQL的jar包.zip

    jdbc连接mysql驱动包(mysql-connector-java-8.0.16.jar和mysql-connector-java-5.1.47.jar)。在java程序中使用JDBC,Class.forName()方法,参数用"com.mysql.cj.jdbc.Driver" (com.mysql.jdbc.Driver已经弃用了)...

    jdbc连接数据库小项目

    提供连接参数 建立一个数据库的连接 创建一个statement连接 执行sql语句 处理结果 关闭jdbc对象。 处理数据库在jdbc中 通过注解和普通的两种方式查询sql test.sql为数据库文件 mysql数据库。 text:测试jdbc

    mysql8的ipv4_v6连接及各个系统参数查询.rar

    mysql8.0+驱动包、IPv4、IPv6连接方式 以及各类mysql系统参数查询sql,可运行。

    JDBC:Java连接MySQL数据库(优化版)

    Java连接MySQL数据库(优化版) 目的: 当需要把应用程序从开发环境移植到生产环境时,不用修改源代码,只需要修改mysql.ini配置文件 方法: 不直接把数据库连接信息写在程序里,而是单独使用一个properties(也就是...

    jdbc连接数据库的方式2

    二、JDBC连接MySql方式 下面是使用JDBC连接MySql的一个小的教程 1、查找驱动程序 MySQL目前提供的java驱动程序为Connection/J,可以从MySQL官方网站下载,并找到mysql-connector-java-3.0.15-ga-bin.jar文件,此...

    关于MySql链接url参数的设置

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

    Java数据库连接(JDBC版)

    java版的数据库连接工具类,修改mysql连接参数即可使用,随时获得jdbc连接

    MySQL5.0安装图解.docx

    昨天看同学用Java连接MySQL数据库的时候,出现了乱码,这是我不知道的,我马上上网去查JDBC连接MySQL的操作,发现在用JDBC方式连接MySQL数据库的时候要传递一个能解决乱码的参数,才能将不是乱码的数据插入到数据库...

    JDBC 3.0数据库开发与设计

    2.2 使用JDBC连接数据库 2.2.1 SQLJ基本知识 2.2.2 用PL/SQL和Java建立应用程序的基本知识 2.2.3 PL/SQL和Java的特性 2.2.4 PL/SQL和Java的实际开发应用实例 2.2.5 Java连接各类数据库的程序代码 2.3 Web应用...

    java-JDBC-AutoClose-自动关闭的JDBCUtil,效果高于传统JDBC

    java_JDBC_AutoClose_自动关闭的JDBCUtil,效果高于传统JDBC,jdbc连接数据库进行带参数更新操作,mysql update语句,数据库课程设计mysql,jdbc优化

    mysql57驱动jar包

    注意连接的包名有所改变,但如果还是用com.mysql.jdbc.Driver也可以,只是会有警告信息,提示你此方法已过期。 还有一点,在使用8.0.12的连接驱动时,需要配置useSSL=false的参数。 具体配置如下: Class.forName...

    MYSQL

    4.12.1 在 Win32 上安装 MySQL 4.12.2 在 Win95 /Win98上启动 MySQL 4.12.3 在 NT 上启动 MySQL 4.12.4 在 Win32 上运行 MySQL 4.12.5 用 SSH 从 Win32 连接一个远程MySQL 4.12.6 MySQL-Win...

    MySQL中文参考手册.chm

    Win32 上安装 MySQL 4.12.2 在 Win95 /Win98上启动 MySQL 4.12.3 在 NT 上启动 MySQL 4.12.4 在 Win32 上运行 MySQL 4.12.5 用 SSH 从 Win32 连接一个远程MySQL 4.12.6 MySQL-Win32与Unix ...

Global site tag (gtag.js) - Google Analytics