【问题标题】:Sqlalchemy shows "Code 516 Authentication failed" when trying to connect to clickhouse db尝试连接到 clickhouse db 时,Sqlalchemy 显示“代码 516 身份验证失败”
【发布时间】:2020-07-21 20:43:39
【问题描述】:

我已使用 dbeaver 连接到 clickhouse db,并为 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()

我明白了

Exception: Code: 516, e.displayText() = DB::Exception: default: Authentication failed: 密码不正确或没有该名称的用户(版本 20.3.4.10(官方构建))

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

【问题讨论】:

  • 尝试检查安装 ClickHouse 的服务器上的文件 /etc/clickhouse-server/users.xml - 该文件包含所有可用凭据的描述
  • 您好弗拉基米尔,谢谢!我很确定我的凭据是正确的,我可以使用它通过 dbeaver 连接到这个数据库
  • 嗨,你解决了吗?同样的问题,我可以使用带有密码标志的 clickhouse-client 命令登录,但不能在 python 中使用它
  • @mingchau 不,我没有。问题可能是 sqlalchemy 或其他问题,它适用于 clickhouse_driver 试试这个包

标签: python mysql sqlalchemy clickhouse


【解决方案1】:

根据@vladimir 的回复。我试过了

pip uninstall infi.clickhouse_orm
pip install infi.clickhouse_orm==1.0.4

它对我有用。 谢谢

【讨论】:

    【解决方案2】:

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

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

    requirements.txt

    ...
    infi.clickhouse_orm==1.0.4
    

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

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


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

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

    clickhouse-driversqlalchemy-clickhouse 的最佳替代方案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-25
      • 2014-05-18
      • 2014-05-29
      • 2014-07-05
      • 2021-12-17
      • 1970-01-01
      • 2021-01-18
      相关资源
      最近更新 更多