Mysql

升級到 Ubuntu 20.04 後無法連接 MySQL(錯誤 2026)

  • December 17, 2020

將我的工作站升級到 Ubuntu 20.04 LTS 後,我無法連接到 CentOS 7 伺服器上執行的 MySQL 5.7.27。我正在使用命令連接mysql -h <server_ip> -u <user_name> -p,輸入密碼後出現錯誤 2026:

ERROR 2026 (HY000): SSL connection error: error:1425F102:SSL
routines:ssl_choose_client_version:unsupported protocol

我還嘗試使用 mysqldump 獲取數據庫數據,但最終出現類似錯誤。我想也許在工作站升級 mysql 客戶端不支持舊協議之後,我已經使用 ssh 登錄伺服器,從伺服器的 shell 訪問 mysql 並查看支持哪些協議

mysql> SHOW GLOBAL VARIABLES LIKE 'tls_version';
+---------------+---------------+
| Variable_name | Value         |
+---------------+---------------+
| tls_version   | TLSv1,TLSv1.1 |
+---------------+---------------+
1 row in set (0,00 sec)

有了這些資訊,我再次嘗試從工作站連接,這次指定了 TLS 版本

mysql -h <server_ip> --tls-version=TLSv1.1 -u <user_name> -p
mysql -h <server_ip> --tls-version=TLSv1 -u <user_name> -p

兩個命令都以

ERROR 2026 (HY000): SSL connection error: error:141E70BF:SSL routines:tls_construct_client_hello:no protocols available

我發現的唯一解決方法是使用禁用 SSLmysql -h <server_ip> --ssl-mode=DISABLED -u <user_name> -p

我錯過了什麼還是一些錯誤?謝謝您的回答。

我找到了一個解決方案,假設您的 MySQL 使用的是 OpenSSL 而不是 yaSSL。

參考 MySQL 的ssl_cipher配置變數。

配置包含偽密碼的密碼列表@SECLEVEL=1

例如,

ssl_cipher = "DHE-RSA-AES128-GCM-SHA256:AES128-SHA:@SECLEVEL=1"

如果您需要更寬鬆但仍然安全的密碼表,

"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可能會完成這項工作。

引用自:https://serverfault.com/questions/1016796