2017-10-12 18 views
-1

Je veux exporter les tables MYSQLdb au format .csv.Comment exporter la table MYSQLdb en CSV sur Debian?

J'ai essayé ceci:

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() 

Je reçois ce message d'erreur:

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")') 

Quel est le problème dans ce code? Pourquoi je ne peux pas l'exporter en .csv?

+1

Tu ne peux pas essayer de sauver où vous disposez des autorisations d'écriture? J'aime/tmp/ – Marco

+0

Merci @Marco, ça marche !! :) – Harley

+1

Vous pouvez également marquer un "plus" aux commentaires quand vous les trouvez utiles :-) – Marco

Répondre

1

Je suggère d'essayer d'enregistrer votre dans un répertoire où vous avez sûrement des droits d'écriture comme/tmp/

Comme ceci:

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 '';