Не удается найти файл, созданный outfile в MySQL

Я придумал http://xsltransform.net/jyH9rMo , который просто делает



    

    
      
        
          New Version!
        
        
      
    

    
        
            
        
    

    
   

    
      
    

    
      
    

         
    

41
задан Marc B 14 July 2012 в 14:53
поделиться

4 ответа

MySQL может записывать файл в свой собственный каталог данных, как, например, /var/lib/mysql/<databasename>. Чтобы указать путь, используйте полный путь.

Однако, это должен быть каталог, доступный для записи учетной записи пользователя, под которой работает демон сервера MySQL. По этой причине я часто буду использовать /tmp:

Укажите путь, по которому вы хотите записать, как в:

INTO OUTFILE '/tmp/mydata.csv'

И обратите внимание, что MySQL запишет файл в MySQL сервер , а не на вашем клиентском компьютере. Поэтому удаленные соединения будут создавать выходные файлы на удаленном сервере. См. Также SELECT INTO OUTFILE local? для получения более подробной информации и обходных путей.

Systemd & amp; Linux

Примечание о записи в /tmp в системе Linux, работающей systemd :

Через несколько лет после первоначальной публикации я обнаружил, что не могу найти файл записан в /tmp через

...INTO OUTFILE '/tmp/outfile.csv'

на сервере MariaDB 5.5 под управлением Fedora Linux с systemd. Вместо записи файла непосредственно в /tmp/outfile.csv, как указано, этот каталог и файл были созданы под каталогом systemd в /tmp:

/tmp/systemd-mariadb.service-XXXXXXX/tmp/outfile.csv

В то время как сам файл outfile.csv и подкаталог tmp/ оба были созданы для всеобщего доступа, сам каталог службы systemd имеет 700 разрешений и принадлежит пользователю с правами root, что требует доступа sudo для извлечения файла из него.

Вместо того, чтобы указывать абсолютный путь в MariaDB как /tmp/outfile.csv и указывать его относительно outfile.csv, файл был записан, как и ожидалось, в каталог данных MariaDB для текущей выбранной базы данных.

55
ответ дан Community 14 July 2012 в 14:53
поделиться

В случае, если кто-либо в OS X имеет эту проблему, mysql, установленный с homebrew, имеет выход по умолчанию, расположенный в /usr/local/var/mysql/database-name/

1
ответ дан seeker_of_bacon 14 July 2012 в 14:53
поделиться

Вы найдете файл в C:\wamp\bin\mysql\mysql5.5.24\data, но имя будет UsersNamecarro.txt, если вы дадите select * from carro where id_cor<4 INTO OUTFILE 'C:\Users\Name\carro.txt';

, поэтому просто напишите .....OUTFILE 'C:\carro.txt', чтобы получить файл с именем carro.txt в data папка

0
ответ дан Eric Stein 14 July 2012 в 14:53
поделиться

Только для примера:

Я выполнял запрос ниже в MySQL Workbench & amp; Я нашел свой файл в

SELECT * FROM `db`.`table` INTO OUTFILE 'file.csv' FIELDS TERMINATED BY ',';

D: \ wamp \ bin \ mysql \ mysql5.6.17 \ data \ db \ file.csv

Вы можете использовать приведенный ниже пример, чтобы установить путь к файлу:

SELECT * FROM `db`.`table` INTO OUTFILE 'C:\\file.csv' FIELDS TERMINATED BY ',';
3
ответ дан Neeraj Singh 14 July 2012 в 14:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: