【发布时间】:2018-02-20 07:31:05
【问题描述】:
我正在使用
- pyodbc 3.0.3
- python 2.7.12
- GNU/Linux 4.4.0-59-generic x86_64
- Ubuntu 16.04.1 LTS(Xenial Xerus)
- unixODBC 2.3.1
- ODBC 5.3(w) 驱动程序
当尝试在连接字符串中传递 Unicode 数据库名称时出现错误
提供了 Unicode 连接字符串,但驱动程序没有 Unicode 连接函数
我的代码是这样的
# -*- coding: utf-8 -*-
import pyodbc
dbname = u"डाटाबेस"
cstring = "DRIVER={MySQL};SERVER=192.168.8.25;PORT=3306;DATABASE="+dbname+";UID=root;PWD=root;CHARSET=utf8;" \
"use_unicode=1"
connect = pyodbc.connect(cstring)
编辑 1:
我已将 pyodbc 更新到 4.0.21 版本。上面的错误消失了,但又出现了一个问题
import pyodbc
dbname = u"डाटाबेस"
cstring = "DRIVER={MySQL};SERVER=192.168.2.243;PORT=3306;DATABASE="+dbname+";UID=root;PWD=support@immune;CHARSET=utf8;" \
"use_unicode=1"
connect = pyodbc.connect(cstring, encoding='utf-8')
当我运行它时,我得到了以下错误
error=('HY000', u"[HY000] [unixODBC][MySQL][ODBC 5.3(w) Driver]未知数据库'\xe0\xa4\xa1\xe0\xa4\xbe\xe0\xa4\x9f \xe0\xa4\xbe\xe0\xa4\xac\xe0\xa5\x87\xe0\xa4\xb8' (1049) (SQLDriverConnect)")
【问题讨论】:
-
请edit 显示您的问题:您正在运行什么操作系统。您使用的是什么版本的 MySQL ODBC 驱动程序。您是如何安装该驱动程序的。
-
pyodbc 3.0.3 真的很老了。试试
pip install pyodbc==4.0.21看看是否有帮助。 -
也许:使用 MySQL Connector/Python 而不是 pyodbc 和 MySQL Connector/ODBC
-
目前,更改库不是一种选择。库的变化可能会导致我们的产品代码发生很大的变化。
标签: mysql python-2.7 unicode odbc pyodbc