Executando mysqldump em um sistema debian que entrou em modo somente leitura

1

Um antigo sistema Debian meu recentemente fez com que o disco rígido principal entrasse no modo somente leitura devido a algum problema no disco. Eu tenho um banco de dados MySQL no servidor que gostaria de fazer backup antes de tentar reparar o disco rígido.

Felizmente eu tenho outra unidade montada que não está no modo somente leitura, então eu deveria ser capaz de executar um mysqldump para despejar o banco de dados para ele. No entanto, recebo o erro abaixo executando mysqldump :

mysqldump: Couldn't execute 'show fields from 'xxx'': Can't create/write to file '/tmp/#sql_b96_0.MYI' (Errcode: 30) (1)

Isto é obviamente devido ao fato de que o disco primário está no modo somente leitura.

Existe alguma maneira de contornar isso?

    
por Nada_Surf 09.10.2013 / 12:53

3 respostas

0

Use a variável de ambiente TMPDIR para dizer ao mysqldump onde colocar seus arquivos temporários e aponte para um local gravável.

export TMPDIR=/mnt/writable_drive/tmp ; mysqldump dbname >/mnt/writable_drive/backup.sql
    
por 09.10.2013 / 23:59
0

O mysqldump está tentando criar alguns arquivos temporários em seu disco morto.

Tente mover / tmp para o novo disco rígido:

mkdir /mnt/newhdd/tmp
mount --bind /mnt/newhdd/tmp /tmp

Isso deve permitir que seu sistema seja executado normalmente até que você conclua o despejo.

Outras boas opções seriam: descarregar de uma máquina remota, ou parar o mysqld e apenas copiar os arquivos mysql para um novo sistema (o que é bom fazer mesmo se o mysqldump funcionar, ESPECIALMENTE se você tiver problemas na tabela). / p>     

por 09.10.2013 / 14:33
0

Se você não conseguir simplesmente montar um sistema de arquivos rw em / tmp e obter o mysql feliz, então você tem algumas outras opções:

1) use os comandos remotos do mysql; por exemplo, faça o login remotamente e salve remotamente

2) transmitir toda a saída do mysqldump para um sistema de arquivos que seja rw

3) tar todos os arquivos mysql db, assim que o mysqld for parado, e reutilizá-los em um sistema saudável.

4) compre uma nova unidade, conecte-a, inicialize em um LiveCD ou flash inicializável, monte antigo e novo, use dd para recriar o antigo e o novo.

.... talvez 10 outras maneiras também.

    
por 09.10.2013 / 23:50