escrevendo a saída do mysql para o arquivo no CentOS 7

1

Estou tentando executar o seguinte comando de dentro do cliente de linha de comando do mysql no terminal do CentOS:

SELECT Concat('TRUNCATE TABLE ',table_schema,'.',TABLE_NAME, ';')  
FROM INFORMATION_SCHEMA.TABLES where  table_schema in ('justatest')  
INTO OUTFILE '/home/user/tmp/truncate.sql';

O resultado é esse erro:

ERROR 1 (HY000): Can't create/write to file '/home/user/tmp/truncate.sql' 
(Errcode: 13 - Permission denied)

Eu então abri um novo terminal, digitei su - , dei a senha e digitei os seguintes comandos:

chown root:root /home/user/tmp
chmod 1777 /home/user/tmp

Mas ainda recebo o mesmo erro quando executo o código SQL original no topo acima.

EDITAR:

Eu também recebo o mesmo erro quando tento:

chown username:username /home/user/tmp
chmod 1777 /home/user/tmp

e a mesma mensagem de erro quando tento:

chown mysql:mysql /home/user/tmp
chmod 1777 /home/user/tmp

Como posso resolver este erro?

    
por CodeMed 01.12.2014 / 20:15

2 respostas

1

Apenas uma outra maneira de alcançar o que você está procurando ...

Execute o comando mysql sem o caminho, apenas o nome do arquivo desejado.

SELECT Concat('TRUNCATE TABLE ',table_schema,'.',TABLE_NAME, ';')
FROM INFORMATION_SCHEMA.TABLES where  table_schema in ('justatest')  
INTO OUTFILE 'truncate.sql';

Isto salvará seu arquivo no diretório padrão mysql ( /var/lib/mysql/database )

Depois, você pode mover o arquivo e alterar o proprietário

$ sudo mv /var/lib/mysql/database/truncate.sql /home/user/tmp
$ sudo chown user:user /home/user/tmp/truncate.sql
    
por 01.04.2016 / 12:39
0

1. Configurar direitos corretos:

Seu caminho /home/user/tmp deve ter direitos corretos em todos os níveis:

/home
/home/user
/home/user/tmp

todas essas pastas devem estar disponíveis para mysql user, não apenas endpoint tmp directory

este comando não está completo:

chown mysql:mysql /home/user/tmp

adiciona o proprietário apenas à pasta tmp , não fornece acesso a home ou user

2. verifique a atividade do SELinux: configure ou desative (se não puder)

para desativar:

edite /etc/selinux/config :

SELINUX=disabled

depois reinicie ou execute o comando

setenforce 0
    
por 01.04.2016 / 09:10

Tags