Seu problema é usar certificado de servidor e chave no lado do cliente.
--ssl-cert=/var/lib/mysql/server-cert.pem --ssl-key=/var/lib/mysql/server-key.pem
Conforme documentado em 6.4.2 Opções de comando para conexões criptografadas (a ênfase é minha):
--ssl-cert=file_name
The path name of the SSL public key certificate file in PEM format. On the client side, this is the client public key certificate. On the server side, this is the server public key certificate. On the server side, this option implies
--ssl
.--ssl-key=file_name
The path name of the SSL private key file in PEM format. On the client side, this is the client private key. On the server side, this is the server private key. On the server side, this option implies
--ssl
.
Você pode forçar a conexão TLS usando --ssl
, sozinho:
mysql -h 127.0.0.1 -P 3306 -u root -p --ssl
Útil aqui também pode ser o --ssl-cipher=cipher_list
. Com ele você pode verificar se a conexão não usa nenhuma codificação que você não queira, mesmo quando permitido na configuração do servidor. No entanto, quando você tem poder sobre ambos, isso deve ser configurado principalmente no lado do servidor.