Sqlalchemy 在尝试连接到 clickhouse 数据库时显示“代码 516 身份验证失败”

Ste*_*Gao 3 python mysql sqlalchemy clickhouse

我已使用 dbeaver 连接到 clickhouse 数据库,并为 python 3.7 安装了 sqlalchemy v1.3.13 和 clickhouse-sqlalchemy 0.1.3。

当我尝试与

from sqlalchemy import create_engine 
engine_clickhouse = create_engine('clickhouse://use:pass@host:port/db')
engine_clickhouse.raw_connection()
Run Code Online (Sandbox Code Playgroud)

我有

异常:代码:516,e.displayText() = DB::Exception:默认:身份验证失败:密码不正确或没有具有此类名称的用户(版本 20.3.4.10(官方构建))

有人知道为什么吗?我没有发现类似的问题。

vla*_*mir 5

这个问题是众所周知的 - 查看sqlalchemy-clickhouse Issue-45sqlalchemy-clickhouse Issue-49

要修复它,需要将包infi.clickhouse_orm显式降级到版本1.0.4

要求.txt

...
infi.clickhouse_orm==1.0.4
Run Code Online (Sandbox Code Playgroud)

它允许将_build_params函数与sqlalchemy -clickhouse预期的行为一起使用(以下版本的infi.clickhouse_orm未传递导致“身份验证失败..”错误的密码)。

或者也可以使用修复此错误的 fork,例如adaiboy fork


我会避免使用官方的 sqlalchemy-clickhouse,因为:

  • 未提交给 master 的修复(“最新提交时间为 2019 年 1 月 23 日”!!)
  • 新功能未添加
  • 熊猫等存在一些问题

clickhouse驱动是最大的替代SQLAlchemy的-clickhouse