【问题标题】:Problem connecting to MySQL database using Python through ODBC通过 ODBC 使用 Python 连接到 MySQL 数据库的问题
【发布时间】:2021-08-11 12:25:53
【问题描述】:

我在建立与 MySQL 数据库的连接时遇到问题 无论我尝试或更改什么,我似乎都遇到了同样的错误。我希望能够使用 python 来使用 ODBC 修改 MySQL 数据库,但是对此我不知道该怎么做。这是错误信息:

Traceback(最近一次调用最后一次): 文件“C:\Users\Lutho\PycharmProjects\pyODBC\main.py”,第 17 行,在 conx = pyodbc.connect(f'''DRIVER={driver}; pyodbc.OperationalError: ('08001', '[08001] [Microsoft][ODBC Driver 17 for SQL Server]Named Pipes Provider: 无法打开与 SQL Server [53] 的连接。(53) (SQLDriverConnect); [08001] [Microsoft][ODBC Driver 17 for SQL Server]登录超时已过期 (0);[08001] [Microsoft][ODBC Driver 17 for SQL Server]与 SQL Server 建立连接时发生网络相关或特定于实例的错误. 找不到服务器或无法访问服务器。检查实例名称是否正确以及 SQL Server 是否配置为允许远程连接。有关详细信息,请参阅 SQL Server 联机丛书。(53)')

我使用的代码:

import pyodbc

# define the server and database name
driver = '{ODBC Driver 17 for SQL Server}'
server = 'Local instance MySQL80'
database = 'tarsdb'
username = 'root'
password = '1234'

# define connection string
conx = pyodbc.connect(f'''DRIVER={driver}; 
                          SERVER={server}; 
                          DATABASE={database};
                          Uid={username};
                          Pwd={password};''')
# create connection cursor
cursor = conx.cursor()

我还尝试使用 Trusted_Connection=yes 并将我的 MySQL 文件移动到与我的 python 文件相同的文件夹中,但没有任何效果。有什么我不知道的东西我想念的吗?如果您能解决我的问题,将不胜感激。 (如果问题看起来很乱,就知道我在格式化它时遇到了问题。)

【问题讨论】:

  • 您为什么要使用用于SQL Server 的驱动程序,即{ODBC Driver 17 for SQL Server},来尝试连接到MySQL 数据库?
  • 您正在尝试使用 Microsoft SQL Server 的 ODBC 驱动程序连接到 MySQL 服务器。要从 Python 连接到 MySQL,请考虑使用 mysqlclientpymysql
  • @norie 我认为这是同一回事,当您尝试连接到 MySQL 数据库时,它被视为服务器。
  • @GordThompson 我会试一试,然后回复你。
  • 谢谢@GordThompson,我的程序现在似乎正在运行。我决定使用 pymysql。

标签: python mysql mysql-workbench pyodbc


【解决方案1】:

当目标数据库是 MySQL 时,问题是尝试使用 Microsoft SQL Server 的 ODBC 驱动程序。 ODBC 驱动程序在不同的数据库产品之间不可互换。

可能使用 pyodbc 和“MySQL Connector/ODBC”从 Python 连接到 MySQL,但还有更好的选择,特别是 mysqlclientpymysql。两者都是可靠的选择,尽管在许多情况下 mysqlclient 比 pymysql 快得多。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-09
    • 1970-01-01
    相关资源
    最近更新 更多