I have configured my server to allow SSL, and have modified my client ~/.my.cnf so I use SSL:


When I log in with my client and view the status, it lists a cipher on the SSL line:

mysql> \s
SSL:            Cipher in use is DHE-RSA-AES256-SHA

Without installing something like wireshark to verify that the connection is secure, can I assume that I'm connecting via SSL based on this information?


From the client, just run status. If this connection is using SSL, you'll get something interesting in the SSL row.

mysql> status
mysql  Ver 14.14 Distrib 5.5.30, for Linux (x86_64) using readline 5.1

Connection id:      12
Current database:
Current user:       replicator@domU-12-31-39-10-54-BD.compute-1.internal
SSL:            Cipher in use is DHE-RSA-AES256-SHA
Current pager:      stdout
Using outfile:      ''
Using delimiter:    ;
Server version:     5.5.30-log MySQL Community Server (GPL)
Protocol version:   10
Connection:     boston.hugskeep.wstudent.com via TCP/IP
Server characterset:    latin1
Db     characterset:    latin1
Client characterset:    utf8
Conn.  characterset:    utf8
TCP port:       3306
Uptime:         44 min 49 sec

Threads: 2  Questions: 16  Slow queries: 0  Opens: 34  Flush tables: 1  Open tables: 27  Queries per second avg: 0.005


If this connection is not using SSL, you'll get:

SSL:            Not in use

You can also use:

mysql> SHOW STATUS LIKE 'Ssl_cipher';
| Variable_name | Value              |
| Ssl_cipher    | DHE-RSA-AES256-SHA |
1 row in set (0.00 sec)


But I think the first is more attractive, and sure easier to type.


This is applicable to mariadb mysql (haven't tried in pure mysql):

mysql -h xxx.xxx.xxx.xxx -u testuser --ssl

'--ssl' will tell you if ssl is enabled, without, it will say 'not in use'


Force SSL per user:

alter user 'my_user'@'%' REQUIRE SSL;
mysql> \s

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.