&引用;认证插件';缓存密码';“无法加载”;使用mysql部署docker时

&引用;认证插件';缓存密码';“无法加载”;使用mysql部署docker时,mysql,docker,airflow,Mysql,Docker,Airflow,在我当前的项目中,我正在使用Docker的气流。作为数据库后端,我使用MySQL。我的MySQL连接配置如下: DB_HOST = 'host.docker.internal' DB_PORT = 3306 DB_USER = root DB_PASS = root DB_NAME = dev 尝试在本地笔记本电脑中部署Web服务器时,出现以下错误: DB: mysql://root:***@host.docker.internal:3306/dev Traceb

在我当前的项目中,我正在使用Docker的气流。作为数据库后端,我使用MySQL。我的MySQL连接配置如下:

   DB_HOST = 'host.docker.internal'
   DB_PORT = 3306
   DB_USER = root
   DB_PASS = root
   DB_NAME = dev
尝试在本地笔记本电脑中部署Web服务器时,出现以下错误:

DB: mysql://root:***@host.docker.internal:3306/dev
Traceback (most recent call last):
....
sqlalchemy.exc.OperationalError: (_mysql_exceptions.OperationalError) 
(2059, "Authentication plugin 'caching_sha2_password' cannot be loaded: 
/usr/lib/x86_64-linux-gnu/mariadb18/plugin/caching_sha2_password.so: 
cannot open shared object file: No such file or directory")

作为Airflow和Docker的新手,我不知道如何调试这个问题。有人能给出关于此的任何指针吗?

这可能是因为从8.0版开始,MySQL的默认身份验证插件是
缓存\u sha256\u密码
,而不是
MySQL\u原生密码

据我所知,目前Airflow还不支持通过
缓存\u sha256\u密码进行身份验证。作为一种解决方法,我建议通过
mysql\u native\u password
将您的用户更改为经过身份验证的用户,可以使用
mysql
中的以下命令进行更改:

UPDATE USER'your_USER_name'@%'由'your_USER_password'用mysql_native_密码标识;
应为“ALTER USER”