2017-10-12 52 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 '';