2017-10-12 125 views
-1

我想将MYSQLdb表格导出为.csv格式。如何在Debian上将MYSQLdb表导出为CSV?

我尝试这样做:

connection = MySQLdb.connect(host='localhost', 
    user='***', 
    passwd='***', 
    db='database1', 
    use_unicode=True, 
    charset="utf8") 
cursor = connection.cursor() 
query = """ select * 
from example_table1 
into outfile 'MYFOLDER' 
fields terminated by ';' 
enclosed by '"' 
lines terminated by ''; 
""" 
cursor.execute(query) 
connection.commit() 
cursor.close() 

我收到此错误信息:

Traceback (most recent call last): 
    File "mysql_export_to_csv.py", line 46, in <module> 
    cursor.execute(query) 
    File "/usr/lib/python2.7/dist-packages/MySQLdb/cursors.py", line 226, in execute 
    self.errorhandler(self, exc, value) 
    File "/usr/lib/python2.7/dist-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler 
    raise errorvalue 
_mysql_exceptions.InternalError: (1, 'Can\'t create/write to file \'/usr/src/Python-2.7.13/output.csv\' (Errcode: 30 "Read-only file system")') 

什么是这个代码的问题?为什么我无法将其导出到.csv?

+1

你能不能尽量节省您有写的权限?像/ tmp/ – Marco

+0

谢谢@Marco,它正在工作! :) – Harley

+1

你也可以标记一个“加”的评论,当你发现它们有用:-) – Marco

回答

1

我建议尝试保存在一个目录,你一定有写权限一样的/ tmp/

像这样:

connection = MySQLdb.connect(host='localhost', 
    user='***', 
    passwd='***', 
    db='database1', 
    use_unicode=True, 
    charset="utf8") 
cursor = connection.cursor() 
query = """ select * 
from example_table1 
into outfile '/tmp/myfile.csv' 
fields terminated by ';' 
enclosed by '"' 
lines terminated by '';