mariadb-client 无法连接到数据库并抛出“不支持 RSA 加密”

mariadb-client 无法连接到数据库并抛出“不支持 RSA 加密”

我有一个带有“db”和“web”容器的docker-compose。db是一个mysql:8.0图像,而web是一个python:3.9-slim

如果我尝试连接到 db 容器内的 MySQL 服务器,它可以工作。但是如果我在 Web 容器内尝试则不行,从这里我得到以下错误:

root@c08888899ca9:/local/app# mysql -h db -u root -p123qwe
ERROR 2061 (HY000): RSA Encryption not supported - caching_sha2_password plugin was built with GnuTLS support

mysql 客户端在不同的容器之间有所不同:db 客户端使用 community-mysql 客户端:

mysql  Ver 8.0.28 for Linux on x86_64 (MySQL Community Server - GPL)

而 Web 容器客户端使用mariadb 客户端

mysql  Ver 15.1 Distrib 10.3.34-MariaDB, for debian-linux-gnu (x86_64)

并且,服务器版本是:

mysql> SELECT VERSION();
+-----------+
| VERSION() |
+-----------+
| 8.0.28    |
+-----------+

关于如何解决“caching_sha2_password plugin”错误的任何想法

非常感谢

答案1

可能的解决方案包括:

  • 配置数据库服务器以使其工作不使用 SSL:删除*.pemssl=0设置my.inimy.cf
  • 使用 OpenSSL 而不是 GnuTLS 重建客户端(我认为它有一个选择 SSL 后端的选项,并且此功能仅支持 OpenSSL。)
  • 更改其中一个容器以匹配另一个:让它们都使用 MySQL 或 MariaDB 构建并具有兼容的配置。有许多不同的现成 MySQL 容器以及 Web 服务器容器,选择可以协同工作的容器应该没有问题。

相关内容