这里有点菜鸟。我正在尝试创建一个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版
-- Jort
发布于 2017-03-02 00:08:45
问题的根本原因是您试图使用ODBC驱动程序来访问MySQL数据库。Sybase ODBC仅用于连接到Microsoft SQL Server和FreeTDS数据库。用于连接到MySQL数据库的ODBC驱动程序是MySQL Connector/ODBC。
无论如何,我能够在Ubuntu16.04下使用Ubuntu存储库提供的FreeTDS ODBC驱动程序重现您的问题。在“分段故障(核心转储)”错误之后,堆栈跟踪表明故障实际上发生在ODBC驱动程序本身(libtdsodbc.so)中。
虽然可以争辩说,分段错误错误应该“永远不会发生”,但尝试升级这个问题可能没有意义。这是一个经典的案例
病人:我这样做的时候很痛。
医生:那就别做了。
https://stackoverflow.com/questions/42528741
复制相似问题