You can configure the MySQL Server which MySQL Shell connects
to by passing the connection data in URI type string format.
Such strings can be used with the
--uri command option, the
\connect command, and the
The URI type string should use the following format:
Percent encoding must be used for reserved characters in the
elements of the URI type string. For example, if you specify a
password that includes the
@ character, the
character must be replaced by
The elements of a URI type string for a MySQL Shell connection are:
scheme: this element is required and specifies the connection protocol to use, currently either
mysqlfor classic connection protocol and
mysqlxfor X Protocol.
user: this element is optional and specifies the MySQL user account to be used for the authentication process.
password: this element is optional and specifies the password to be used for the authentication process.Warning
Storing the password in the URI type string is insecure and not recommended.
target: this element is required and specifies the server instance the connection refers to. Can be either TCP connection information, a Unix socket path or a Windows named-pipe. If not specified, localhost is used by default.
TCP connection information can be either a host name, an IPv4 address, or an IPv6 address. Can include an optional port number in the format
portspecifies a network port which the target MySQL server is listening on for connections. If not specified, 33060 is used by default for X Protocol connections, and 3306 is the default for classic MySQL protocol connections.
Unix socket and Windows named-pipe values are local file paths. There are two ways to specify such paths, using percent encoding or surrounding the path with parentheses, removing the need to percent encode characters such as the common directory separator
/. For example, to connect as
root@localhostusing the Unix socket
/tmp/mysqld.sockeither specify the path using parenthesis as
root@localhost?socket=(/tmp/mysqld.sock)or using percent encoding as
schema: this element is optional and specifies the database to be set as default when the connection is established.
?attribute=value: this element is optional and specifies a data dictionary that contains options.
If no password is specified using the URI type string, which is
recommended, then the password is prompted for. The following
examples show how to specify URI type strings with the user name
user, in each case the password is
An X Protocol connection to a local server instance listening at port 33065.
A classic MySQL protocol X Protocol connection to a local server instance listening at port 3333.
An X Protocol connection to a remote server instance, using a host name, an IPv4 address and an IPv6 address.
mysqlx://email@example.com/ mysqlx://firstname.lastname@example.org:123 mysqlx://user@[2001:db8:85a3:8d3:1319:8a2e:370:7348]
An optional path can be specified, which represents a database schema.
An optional query can be specified, consisting of values in the form of a
key=valuepair or as a single
,character is used as a separator for values, a combination of multiple pairs and keys can be specified. Values can be of type list, list values are ordered by appearance. Strings must be percent encoded.
email@example.com?ssl-ca%3D%2Froot%2Fclientcert%2Fca-cert.pem%26ssl-cert%3D%2Fro\ ot%2Fclientcert%2Fclient-cert.pem%26ssl-key%3D%2Froot%2Fclientcert%2Fclient-key .pem
By default, MySQL Shell assumes that connections require a
password. The password is requested at the login prompt. If the
user has a password-less account, which is insecure and not
recommended, or if socket peer-credential authentication is in
use (for Unix socket connections), you must explicitly specify
that no password is provided and the password prompt is not
required. To do this, place a
: after the
user in the URI type string but do not
specify a password after it. For example: