Backup do banco de dados

0

Eu quero fazer backup do banco de dados Xampp disponível em / opt / lampp / var / mysql 'mas eu sou incapaz de fazer isso. Eu usei abaixo do comando

/opt/lampp/htdocs/vivek.s$ sudo mysqldump -u root -p vive.se > 07feb.sql

e

/opt/lampp/htdocs/vivek.s$ sudo mysqldump -h root -u root -p vive.se > 07feb.sql

O resultado é o mesmo

bash: 07feb.sql: Permission denied

Então eu usei

sudo -s

sudo mysqldump -u root -p vive.se > 07feb.sql

O resultado é

sudo: mysqldump: command not found

e criou um arquivo Vazio chamado 07feb.sql em /opt/lampp/htdocs/vivek.s

O que está errado enquanto eu vi meu amigo usando o mesmo comando e ele conseguiu backup de banco de dados de 95 MB. O que devo tentar?

Obrigado

    
por Vivek Sharma 07.02.2018 / 19:12

1 resposta

3

O problema é que você não tem permissão para gravar em /opt/lampp/htdocs/vivek.s como seu usuário normal. Executar o mysqldump como root eleva o mysqldump (desnecessariamente), mas o redirecionamento acontece com as permissões do shell - sendo executado como usuário regular.

Existem algumas soluções alternativas:

  1. Inicie um shell de root por, por exemplo, sudo -i ou sudo -s . Você não deve usar o sudo para executar o próximo comando - mysqldump.
  2. Use tee :

    mysqldump -u root -p vive.se | sudo tee 07feb.sql > / dev / null

Isso executará o processo tee como root, gravando uma cópia no arquivo e redirecionando o stdout para /dev/null , já que não precisamos dele.

Outra solução alternativa seria gravar o backup em um local em que seu usuário tenha permissão de gravação, por exemplo, seu diretório pessoal.

    
por vidarlo 07.02.2018 / 19:20