mysql 8 安装好连接数据库遇到错误:ERROR 2026 (HY000): SSL connection error: protocol version mismatch
错误2026(hy000):SSL连接错误:协议版本不匹配
# 查询ssl配置
mysql> show variables like '%ssl%';
+-------------------------------------+-----------------+
| Variable_name | Value |
+-------------------------------------+-----------------+
| have_openssl | DISABLED |
| have_ssl | YES |
| performance_schema_show_processlist | OFF |
| ssl_ca | ca.pem |
| ssl_capath | |
| ssl_cert | server-cert.pem |
| ssl_cipher | |
| ssl_crl | |
| ssl_crlpath | |
| ssl_key | server-key.pem |
+-------------------------------------+-----------------+
10 rows in set (0.01 sec)
解决办法
方法一: 在/etc/my.cnf配置文件里添加一行:skip_ssl
方法二:命令行启动添加 --skip-ssl 参数,即 mysql -uroot -p -h 192.168.0.157 --skip-ssl
方法三:命令行启动添加 --ssl-mode 参数,即 mysql -uroot -p -h 192.168.0.157 --ssl-mode=DISABLED
在mysql 8里比较推荐 方法三 方法。
参数–ssl-mode取值
DISABLED :与参数skip-ssl一样,不使用SSL/TLS建立加密连接
PREFERRED :优先尝试使用SSL/TLS建立加密连接,如果无法建立则尝试建立非SSL/TLS连接
REQUIRED :只会尝试使用SSL/TLS建立加密连接
VERIFY_CA: 与REQUIRED行为一样,与此同时会验证server端的证书是否有效
VERIFY_IDENTITY: 与VERIFY_CA行为一样,与此同时验证server端证书的host是否与实际连接的hostname一致
官方参考文档:
https://dev.mysql.com/doc/refman/8.0/en/connection-options.html#option_general_ssl-mode