首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >升级到Ubuntu20.04后无法连接MySQL (错误2026)

升级到Ubuntu20.04后无法连接MySQL (错误2026)
EN

Server Fault用户
提问于 2020-05-12 14:09:47
回答 4查看 21.9K关注 0票数 18

在我的工作站升级到Ubuntu20.04LTS后,我无法连接到运行在MySQL 7服务器上的CentOS 5.7.27。我使用命令mysql -h <server_ip> -u <user_name> -p进行连接,输入密码后得到错误2026:

代码语言:javascript
复制
ERROR 2026 (HY000): SSL connection error: error:1425F102:SSL
routines:ssl_choose_client_version:unsupported protocol

我还尝试使用mysqldump获取数据库数据,结果却出现了类似的错误。我想,在工作站升级之后,mysql客户端可能不支持旧的协议,所以我使用ssh登录到服务器,从服务器的shell访问mysql,并查看支持哪些协议

代码语言:javascript
复制
mysql> SHOW GLOBAL VARIABLES LIKE 'tls_version';
+---------------+---------------+
| Variable_name | Value         |
+---------------+---------------+
| tls_version   | TLSv1,TLSv1.1 |
+---------------+---------------+
1 row in set (0,00 sec)

使用此信息,我再次尝试从工作站连接,这次使用指定的TLS版本。

代码语言:javascript
复制
mysql -h <server_ip> --tls-version=TLSv1.1 -u <user_name> -p
mysql -h <server_ip> --tls-version=TLSv1 -u <user_name> -p

这两个命令都以

代码语言:javascript
复制
ERROR 2026 (HY000): SSL connection error: error:141E70BF:SSL routines:tls_construct_client_hello:no protocols available

我找到的唯一解决办法是使用mysql -h <server_ip> --ssl-mode=DISABLED -u <user_name> -p禁用SSL。

我是不是漏掉了什么还是什么虫子?谢谢你的回答。

EN

回答 4

Server Fault用户

回答已采纳

发布于 2020-06-30 20:33:24

我已经找到了一个解决方案,假设您的MySQL使用的是OpenSSL而不是yaSSL。

请参阅ssl_密码学配置变量MySQL。

配置包含伪密码@SECLEVEL=1的密码列表。

例如,

代码语言:javascript
复制
ssl_cipher = "DHE-RSA-AES128-GCM-SHA256:AES128-SHA:@SECLEVEL=1"

如果你需要一个更宽容但仍然安全的密码表,

代码语言:javascript
复制
"EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH:ECDHE-RSA-AES128-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA128:DHE-RSA-AES128-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES128-GCM-SHA128:ECDHE-RSA-AES128-SHA384:ECDHE-RSA-AES128-SHA128:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES128-SHA128:DHE-RSA-AES128-SHA128:DHE-RSA-AES128-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA384:AES128-GCM-SHA128:AES128-SHA128:AES128-SHA128:AES128-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4:@SECLEVEL=1"

cipherlist.eu拿走可能会完成这项工作。

票数 3
EN

Server Fault用户

发布于 2020-05-17 12:00:47

很抱歉留下了一个应该是评论的回答(代表不够多),但是:

  • 自Ubuntu20.04以来,TLS1.0和1.1似乎已经在全系统范围内被禁用。
  • 我不知道如何重新启用它(这就是我偶然发现这个问题的原因)。

除了openssl s_client -tls1 -connect <some TLSv1-enabled host>:443之外,我没有其他证据证明它不起作用,而且nginx也不能支持TLS1.0和1.1作为服务器(即使配置正确) :/。

1.2之前的TLS版本通常被认为是不安全的,可以避免,这可能就是为什么要这样做的原因。

恐怕这只提供了一半的答案;我希望有人会加入一个解决方案,重新启用TLS1.0和/或1.1。

票数 4
EN

Server Fault用户

发布于 2020-09-02 08:00:36

对我起作用的是这里所描述的启用TLS1.2的MySQL5.7密码

代码语言:javascript
复制
[mysqld]
tls_version=TLSv1.2

在重新启动之后,我能够再次导入。

票数 2
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1016796

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档