This section explains the syntax of the URLs for connecting to MySQL.
This is the generic format of the connection URL:
The URL consists of the following parts:
Any reserved characters for URLs (for example,
?, and space) that
appear in any part of the connection URL must be percent
There are three possible protocols for a connection:
jdbc:mysql:is for ordinary and basic failover connections.
jdbc:mysql:loadbalance:is for configuring load balancing. See Section 8.2, “Configuring Load Balancing with Connector/J” for details.
jdbc:mysql:replication:is for configuring a replication setup. See Section 8.3, “Configuring Source/Replica Replication with Connector/J” for details.
Depending on the situation, the
part may consist simply of a host name, or it can be a complex
structure consisting of various elements like multiple host
names, port numbers, host-specific properties, and user
hostspart is written in the format of
port. This is an example of a simple single-host connection URL:
hostis not specified, the default value of
portis a standard port number, i.e., an integer between 1 and 65535. The default port number for an ordinary MySQL connection is 3306. If
portis not specified, the default value is used.
Here is a sample URL:
This is the mandatory format for iPv6 addresses, but it also supports the iPv4 addresses.
The host and the port are identified by the keys
port. The description of the default values of
portin Single host without host-specific properties above also applies here.
Other keys that can be added include
protocol, and so on. They override the global values set in the
propertiespart of the URL. Limit the overrides to user, password, network timeouts, and statement and metadata cache sizes; the effects of other per-host overrides are not defined.
keyis case-sensitive. Two keys differing in case only are considered conflicting, and there are no guarantees on which one will be used.
Specify multiple hosts by listing them in a comma-separated list:
Each host can be specified in any of the two ways described in Single host above. Here are some examples:
jdbc:mysql://myhost1:1111,myhost2:2222/db jdbc:mysql://address=(host=myhost1)(port=1111)(key1=value1),address=(host=myhost2)(port=2222)(key2=value2)/db jdbc:mysql://myhost1:1111,address=(host=myhost2)(port=2222)(key2=value2)/db
User credentials can be set outside of the connection URL—for example, as arguments when getting a connection from the
java.sql.DriverManager(see Section 5.3, “Configuration Properties for Connector/J” for details). When set with the connection URL, use the keys
passwordto specify credentials for each host:
When multiple user credentials are specified, the one to the left takes precedence—that is, going from left to right in the connection string, the first one found that is applicable to a host is the one that is used.
The default database or catalog to open. If the database is not
specified, the connection is made with no default database. In
this case, either call the
method on the
Connection instance, or specify
table names using the database name (that is,
) in your SQL statements.
Opening a connection without specifying the database to use is,
in general, only useful when building tools that work with
multiple databases, such as GUI database managers.
Always use the
method to specify the desired database in JDBC applications,
rather than the
A succession of global properties applying to all hosts,
preceded by “
?” and written as
pairs separated by the symbol
&.” Here are some examples:
The following are true for the key-value pairs:
valueare just strings. Proper type conversion and validation are performed internally in Connector/J.
keyis case-sensitive. Two keys differing in case only are considered conflicting, and it is uncertain which one will be used.