gpt4 book ai didi

python - SQLObject 抛出 : Unknown database 'dbname?charset=utf8'

转载 作者:行者123 更新时间:2023-11-29 01:53:59 25 4
gpt4 key购买 nike

我有第三方 Python 脚本,看起来它必须通过 SQLObject 包连接到 MySQL 数据库。

考虑到我提供了正确的 DSN,脚本会抛出

sqlobject.dberrors.OperationalError: Unknown database 'dbname?charset=utf8'

我已经将问题追溯到这段代码

ar['charset'] = 'utf8'
conn = connectionForURI(uri, **ar)

调用this function .

并且当 ar['charset'] = 'utf8' 被注释时连接正常,所以没有提供查询字符串。

我在 Windows 上有这个问题,

  • MySQL 5.5.25
  • python 2.7.2
  • MySQL-python 1.2.5
  • SQLObject 3.0.0a1dev-20150327

到底发生了什么,应该如何解决?问题出在依赖还是脚本本身?

最佳答案

我做了一些研究,发现最近版本的 SQLObject 使用了 the following code从 URI 中提取连接参数。不幸的是,urlparse 函数以这种方式工作,因此用作 DB 名称的 path 进一步使用查询字符串进行解析。

作为此问题的解决方法,我建议将 DB 编码参数显式传递给连接对象,如下所示:

conn = connectionForURI(uri)
conn.dbEncoding = 'utf-8'

这可能会有所帮助,但值得发出拉取请求以修复从 URI 中提取数据库名称的问题。

UPD:像 2.x 这样的旧版本使用不同的代码来解析运行良好的连接 URL。

关于python - SQLObject 抛出 : Unknown database 'dbname?charset=utf8' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34113571/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com