Python pyodbc.connect上的pyodbc segfault

Python pyodbc.connect上的pyodbc segfault,python,mysql,odbc,pyodbc,freetds,Python,Mysql,Odbc,Pyodbc,Freetds,这里有点麻烦。我正在尝试创建一个python脚本来对基于SQL的数据库进行压力测试 我一直在尝试使用pyodbc连接数据库,但是在pyodbc.connect(connectionString)上遇到了一个分段错误 其中返回以下内容: ;DRIVER={FreeTDS};SERVER=127.0.0.1;PORT=3306;UID=root;PWD=********;Encrypt=yes;Connection Timeout=30;Database=test Segmentation fau

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

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

其中返回以下内容:

;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


--Jort

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

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

虽然可以说分段错误“永远不会发生”,但试图将此问题升级可能毫无意义。这是一个典型的自杀案例

病人:我这样做很痛。

医生:那就别再做了。

python中出现分段错误的原因有两个:1)内存不足2)C模块中的错误请提问,包括更多细节,如:操作系统。Python版本。pyodbc版本。MySQL连接器/ODBC的ODBC驱动程序版本。(请注意,FreeTDS无法连接到MySQL;它仅适用于SQL Server和Sybase。)@GordThompson>FreeTDS无法连接到MySQL;我不知道应该使用哪个驱动程序连接mysql数据库。我很难让它正常工作,这是我在搜索答案时看到最多的一个,所以我认为它会正常工作。你真的必须使用odbc连接器吗?你可以试试,或者取而代之。上次我不得不访问我使用的ms sql server,它与其他两个实现dbapi2一样。通常,不同python dbapi2数据库连接器之间最相关的区别是所使用的。这三种格式都使用
pyformat
,因此它们在这方面应该非常兼容。如果需要支持其他DBs,ODBC可能更好。或者像sqlalchemy这样的ORM层,它可以与许多不同的db驱动程序一起工作。非常感谢,似乎我只是犯了一个新手错误,不知道每个系统是如何工作的,也非常感谢你为我指出了正确的驱动程序。病人和医生的故事很有意义-D
;DRIVER={FreeTDS};SERVER=127.0.0.1;PORT=3306;UID=root;PWD=********;Encrypt=yes;Connection Timeout=30;Database=test

Segmentation fault