0

我环顾四周,看看是否有人有这个问题,但看起来没有!基本上我的问题如下:

  • 我尝试使用 MySQLdb library for python 将数据加载到 MYSQL db
  • 我似乎成功了,因为我能够检索我在同一个 python 实例中加载的项目
  • 一旦 python 代码运行并关闭,当我尝试通过在 MySQL 工作台中运行查询或在命令提示符下运行 python 代码来检索数据时,我无法检索数据。

所以总而言之,我确实加载了数据,但是当我关闭 python 实例时,数据似乎消失了..

为了稍后隔离问题,我在我的代码中放置了一个 time.sleep(60) 行,这样一旦 python 代码加载数据,我就可以尝试使用查询从 MYSQL 工作台检索数据,但我仍然不能..

我想也许我正在将数据保存到不同的实例中,但我检查了“端口”等内容,它们是相同的!..

我花了 4-5 个小时试图弄清楚,但开始失去希望.. 帮助很多.. 请在下面找到我的代码:

db = MySQLdb.connect("localhost","root","password","mydb")
cursor = db.cursor()
cursor.execute("SELECT VERSION()")
data = cursor.fetchone()
print data

cursor.execute("LOAD DATA LOCAL INFILE "+ "filepath/file.txt" +" INTO TABLE addata FIELDS TERMINATED BY ';' LINES TERMINATED BY '\r\n'")
data = cursor.fetchall()
print data ###At this point data displays warnings etc
cursor.execute("select * from addata")
data = cursor.fetchmany(10)
print data ###Here I can see that the data is loaded

time.sleep(60) ##Here while the code is sleeping I go to mysql workbench and try the query "select * from addata".. It returns nothing:(
4

1 回答 1

4

您几乎肯定需要在加载数据后提交数据。

如果您的程序在未提交数据的情况下退出,则数据库将回滚您的事务,假设出现问题。

您可以将自动提交设置为连接请求的一部分,否则您应该通过光标对象调用“commit()”。

于 2013-09-27T19:09:19.893 回答