Não foi possível encontrar o OUTFILE da consulta mysql

1

Eu tenho uma consulta MySql a partir da qual eu gero um OUTFILE (.csv) que eu salvá-lo em / tmp. Por favor, encontre a consulta abaixo:

SELECT 'Artifact ID' id, 'Related Links' new_value UNION select CONCAT(si.ID_PREFIX, si.ID_COUNT) as ID, tmp.NEW_VALUE from ( select ACTIVITY_ID, ISSUE_ID, OLD_VALUE, NEW_VALUE from SCARAB_ACTIVITY where ISSUE_ID in (select ISSUE_ID from SCARAB_ISSUE where MODULE_ID = 775)  and (NEW_VALUE like 'http%') order by ACTIVITY_ID desc) tmp, SCARAB_ISSUE si where tmp.ISSUE_ID = si.ISSUE_ID INTO OUTFILE '/tmp/flexsustain_test_relatedlinks.csv' FIELDS ENCLOSED BY '' TERMINATED BY ',';

Eu já tentei configurar o arquivo /etc/my.cnf

[mysqld]
datadir=/var/lib/mysql
tmpdir = /var/lib/mysql/tmp
socket=/var/lib/mysql/mysql.sock
read-only = 0

e também dei permissões completas para o tmpdir. Mas quando eu executar a consulta não tenho certeza onde o arquivo é salvo. Alguma sugestão?

    
por Subrat Sahoo 06.03.2017 / 09:07

1 resposta

0

Você especificou /var/lib/mysql/tmp como diretório temporário em sua configuração para o servidor de banco de dados, mas especificou na consulta que o arquivo deve ser salvo em /tmp . Portanto, você deve encontrar o arquivo resultante dessa consulta no diretório /tmp .

Mas se você estiver usando um servidor com systemd e tiver privatetemp ativado para db, esse arquivo provavelmente será armazenado em uma pasta privatetemp, mesmo que você especifique o caminho absoluto na consulta. A pasta temporária privada será algo como /tmp/systemd-mariadb.service-XXXXXXX/tmp/outfile.csv .

    
por 06.03.2017 / 09:46