6.3.10 Using SSL for Secure Connections

6.3.10.1 Basic SSL Concepts
6.3.10.2 Configuring MySQL for SSL
6.3.10.3 Using SSL Connections
6.3.10.4 SSL Command Options
6.3.10.5 Setting Up SSL Certificates and Keys for MySQL

MySQL supports secure (encrypted) connections between MySQL clients and the server using the Secure Sockets Layer (SSL) protocol. This section discusses how to use SSL connections. For information on how to require users to use SSL connections, see the discussion of the REQUIRE clause of the GRANT statement in Section 13.7.1.4, “GRANT Syntax”.

The standard configuration of MySQL is intended to be as fast as possible, so encrypted connections are not used by default. For applications that require the security provided by encrypted connections, the extra computation to encrypt the data is worthwhile.

MySQL enables encryption on a per-connection basis. You can choose an unencrypted connection or a secure encrypted SSL connection according the requirements of individual applications.

Secure connections are based on the OpenSSL API and are available through the MySQL C API. Replication uses the C API, so secure connections can be used between master and slave servers. See Section 17.3.7, “Setting Up Replication Using SSL”.

Another way to connect securely is from within an SSH connection to the MySQL server host. For an example, see Section 6.3.11, “Connecting to MySQL Remotely from Windows with SSH”.