gpt4 book ai didi

python - pyodbc.connect 上的 pyodbc 段错误

转载 作者:行者123 更新时间:2023-11-29 05:09:12 27 4
gpt4 key购买 nike

这里有点菜鸟。我正在尝试创建一个 python 脚本来对基于 SQL 的数据库进行压力测试。

我一直在尝试使用 pyodbc 连接到数据库,但是我在 pyodbc.connect(connectionString) 上遇到了段错误

#connects to the database
def connectToDb():
print(labels.OKBLUE + "Connecting to: " + args.ip + " at port: " + args.port)

connString = ""
connString = connString + ';DRIVER=' + args.driver
connString = connString +';SERVER=' + args.ip
if not args.port == "":
connString = connString + ';PORT=' + args.port
connString = connString + ';UID=' + args.user
connString = connString + ';PWD=' + args.password
connString = connString + ';Encrypt=yes;Connection Timeout=30'
if not args.database == None or not args.database == "":
connString = connString + ";Database=" + args.database
try:
print(connString) #for debugging
conn = pyodbc.connect(connString)
except pyodbc.Error as ex:
for arg in ex.args:
print(labels.FAIL + arg )
sys.exit()

返回这个:

;DRIVER={FreeTDS};SERVER=127.0.0.1;PORT=3306;UID=root;PWD=********;Encrypt=yes;Connection Timeout=30;Database=test

Segmentation fault

我只是想连接到本地 mysql 服务器,我不知道是什么原因造成的,非常感谢任何帮助和建议

编辑:

debian jessie 作为操作系统

python 3 最新

最新的odbc

freetds v0.91

TDS 4.2 版

-- 乔特

最佳答案

问题的根本原因是您试图使用 FreeTDS ODBC 驱动程序访问 MySQL 数据库。 FreeTDS ODBC 仅用于连接 Microsoft SQL Server 和 Sybase 数据库。用于连接到 MySQL 数据库的 ODBC 驱动程序是 MySQL Connector/ODBC .

值得一提的是,我能够使用 Ubuntu 存储库中提供的 FreeTDS ODBC 驱动程序在 Ubuntu 16.04 下重现您的问题。在“Segmentation fault (core dumped)”错误之后,堆栈跟踪表明故障实际上发生在 FreeTDS ODBC 驱动程序本身 (libtdsodbc.so) 中。

虽然有人认为段错误应该“永远不会发生”,但尝试升级此问题可能没有意义。这是一个经典案例

病人:我做的时候很疼。
医生:那就别做了。

关于python - pyodbc.connect 上的 pyodbc 段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42528741/

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