【问题标题】:connection to mysql function error in python在python中连接到mysql函数错误
【发布时间】:2018-07-18 04:26:12
【问题描述】:

请多多包涵,我是 Python 和编程菜鸟, 我正在编写一个函数来连接到 mysql 数据库

server = "localhost"
dbname = "db"
dbuser = "root"
dbpassword = "Klingon"
port = "3399"
driver = "{MySQL ODBC 5.3 ANSI Driver}"


def mysql_cnxn(driver, serverip, port, dbname, dbuser, dbpassword):

conns = "{0},{1},{2},{3},{4},{5}".format(driver, serverip, port, dbname, dbuser, dbpassword)

conn = pyodbc.connect(conns)
return conn

mysql_cnxn(driver, serverip, port, dbname, dbuser, dbpassword)

我目前收到以下错误:

pyodbc.InterfaceError: ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] 未找到数据源名称且未指定默认驱动程序 (0) (SQLDriverConnect); [IM002] [Microsoft] [ODBC 驱动程序管理器] 无效的连接字符串属性 (0)')

我确定它是如何调用该函数的,请帮忙。 如果有帮助,我正在使用 python 3.6.4。

【问题讨论】:

  • 打开[ODBC DataSource],确保Mysql ODBC 5.3 ANSI在[Driver]选项卡中。

标签: python mysql python-3.x function pyodbc


【解决方案1】:

您可以使用“mysql.connector”API 访问您在 MySQL 中的数据库。一些教程在这里: https://dev.mysql.com/doc/connector-python/en/connector-python-example-cursor-select.html

【讨论】:

    【解决方案2】:

    如果你打印conns 的值,你会看到它看起来像

    {MySQL ODBC 5.3 ANSI Driver},localhost,3399, ...
    

    这不是有效的 ODBC 连接字符串,因为它缺少必需的关键字。它应该看起来像

    Driver={MySQL ODBC 5.3 ANSI Driver};Server=localhost;Port=3399; ...
    

    有关详细信息,请参阅 connectionstrings.com 页面 here

    【讨论】:

    • 非常感谢您的解释,我按照您解释的方式实现了它,现在它可以正常工作了。我也想知道如果连接成功,我将如何让函数返回“true”,否则返回 false?
    猜你喜欢
    • 2017-10-05
    • 1970-01-01
    • 2017-04-19
    • 2012-07-25
    • 1970-01-01
    • 1970-01-01
    • 2019-05-10
    • 2015-10-17
    • 1970-01-01
    相关资源
    最近更新 更多