【发布时间】:2015-02-02 23:42:03
【问题描述】:
我正在尝试使用 pyodbc 连接到 Windows Server 2008 R2 本地主机上的 MySQL 5.6。我在 localhost 上使用了 MySQL 实例的完整安装,包括 ODBC 连接器。我让它漂亮地连接到远程 SQL Server 实例,但在我的一生中,我无法让它连接到本地 MySQL 实例。我使用这个guide from connectionstrings.com 作为参考。
这里有一些代码:
import pyodbc
def create_mssql_conn():
return pyodbc.connect(r'Driver={SQL Server};Server=MSSQLSRV;Database=ecomm;Trusted_Connection=yes;')
def create_mysql_conn():
return pyodbc.connect(r'Provider=MSDASQL;Driver={MySQL ODBC 5.6 UNICODE Driver};Server=127.0.0.1;Database=ecomm;User=root;Password=myP@$$w0rd;Option=3;')
# conn = create_mssql_conn() # This one works
conn = create_mysql_conn() # This one breaks
cursor = conn.cursor()
cursor.execute('SELECT * FROM inventory')
while 1:
row = cursor.fetchone()
if not row:
break
print row
这是错误:
pyodbc.Error: ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnect)')
我尝试了从添加Provider=MSDASQL; 到将连接字符串中的ANSI 更改为UNICODE 的所有方法。有什么建议吗?
【问题讨论】:
-
验证已安装的 MySQL 连接器/ODBC 的“位数”是否与您使用的 Python 版本的“位数”匹配:它们必须都是 64 位或都是 32 位。另外,您是否考虑过尝试MySQL Connector/Python?
-
有趣的是,您应该建议使用 Python 连接器。由于时间限制,这正是我为设定最后期限所做的。我只是想让 pyodbc 工作,因为我已经将它导入以从 SQL Server 中提取数据。稍后我将研究“比特”业务。
标签: mysql windows odbc connection-string pyodbc