我正在尝试将csv文件加载到数据库中但没有成功。问题是它在我直接在mysql shell中加载查询时起作用,但是当我尝试从python代码执行时它不起作用。我使用的代码如下所示:
db = connect_to_database()
cursor = db.cursor()
q = "LOAD DATA LOCAL INFILE '/home/ubuntu/load_file.csv' INTO TABLE test_load FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n'"
db.query(q)
cursor.execute(q)
db.commit()
它抛出的错误说:
File "/usr/local/lib/python2.7/dist-packages/MySQLdb/connections.py", line 281, in query
_mysql.connection.query(self, query)
_mysql_exceptions.OperationalError: (1148, 'The used command is not allowed with this MySQL version')
当我将字符串复制到sql shell中时,它会成功加载。我不确定为什么会抛出这个错误。
答案 0 :(得分:0)
所以我设法解决了这个问题。缺少的只是MySQLDB connect中的local_infile参数:
db = MySQLdb.connect(host = raw_host,user = raw_user,passwd = raw_passwd,db = raw_db,local_infile = 1)
当我添加此参数时,它按预期工作。谢谢大家为解决问题所做的努力。