SSL (nowadays implemented as TLS) is not part of the ANSI SQL standard, but MySQL (and MariaDB) expose the SSL keyword inside GRANT, CREATE USER, and ALTER USER statements. When an account definition contains REQUIRE SSL, the server will refuse any connection attempt that does not negotiate TLS during the handshake. The keyword changes only authentication rules; it does not create certificates or start encryption on its own. The server must already be compiled and started with SSL support and valid certificates (ca.pem, server-cert.pem, server-key.pem). On the client side, SSL parameters (for example --ssl-mode=REQUIRED or --ssl-cert) must be supplied, or the client library auto-negotiation must succeed. If either side cannot negotiate TLS, the connection fails with ER_SECURE_TRANSPORT_REQUIRED. MySQL treats SSL, TLSv1.2, TLSv1.3, and future protocol versions identically for the purpose of the REQUIRE SSL clause. To enforce stronger validation, administrators can use REQUIRE X509 or add CIPHER, ISSUER, and SUBJECT sub-clauses. Removing the requirement is done with ALTER USER ... REQUIRE NONE. Because SSL requirements are stored in mysql.user, backups of that table or full logical dumps will carry the rule forward to restores. Administrators should test REQUIRE SSL in staging first because legacy scripts or drivers may lack TLS support.
MySQL 4.1
It forces the client to establish a TLS-encrypted channel before authentication. Plain connections are refused.
Execute SHOW STATUS LIKE 'Ssl_cipher'; A non-empty result confirms encryption is active.
Yes. Run ALTER USER 'name'@'host' REQUIRE NONE; to permit both encrypted and unencrypted sessions.
MySQL uses the keyword SSL historically, but the implementation negotiates modern TLS protocols under the hood.