Como faço para restaurar um arquivo de despejo do mysqldump?

Foi-me dado um arquivo de database MySQL que eu preciso restaurar como um database na minha máquina Windows Server 2008.

Eu tentei usar o MySQL Administrator, mas recebi o seguinte erro:

O arquivo selecionado foi gerado pelo mysqldump e não pode ser restaurado por este aplicativo.

Como faço para que isso funcione?

Deve ser tão simples quanto rodar isto:

mysql -u  -p < db_backup.dump 

Se o dump for de um único database, talvez seja necessário adicionar uma linha na parte superior do arquivo:

 USE ; 

Se foi um despejo de muitos bancos de dados, as instruções de uso já estão lá.

Para executar esses comandos, abra um prompt de comando (no Windows) e cd para o diretório onde o executável mysql.exe é (você pode ter que olhar um pouco para ele, ele vai depender de como você instalou o mysql, ou seja, standalone ou como parte de um pacote como o WAMP). Quando estiver nesse diretório, você poderá digitar o comando como eu o tenho acima.

Se o database que você deseja restaurar ainda não existir, será necessário criá-lo primeiro.

Na linha de comando, se você estiver no mesmo diretório que contém o arquivo despejado, use esses comandos (com substituições apropriadas):

 C:\> mysql -u root -p mysql> create database mydb; mysql> use mydb; mysql> source db_backup.dump; 

Você simplesmente precisa executar isto:

mysql -p -u[user] [database] < db_backup.dump

Se o dump contiver vários bancos de dados, você deverá omitir o nome do database:

mysql -p -u[user] < db_backup.dump

Para executar esses comandos, abra um prompt de comando (no Windows) e cd para o diretório onde o executável mysql.exe é (você pode ter que olhar um pouco para ele, ele vai depender de como você instalou o mysql, ou seja, standalone ou como parte de um pacote como o WAMP). Quando estiver nesse diretório, você poderá digitar apenas o comando.

 mysql -u username -p -h localhost DATA-BASE-NAME < data.sql 

olhe aqui - passo 3 : desta forma você não precisa da instrução USE

Quando criamos um arquivo de despejo com o mysqldump , o que ele contém é um grande script SQL para recriar o conteúdo do database. Então nós o restauramos usando o cliente de linha de comando do MySQL:

 mysql -uroot -p 

(onde root é nosso nome de usuário admin para o MySQL), e uma vez conectado ao database, precisamos de comandos para criar o database e ler o arquivo nele:

 create database new_db; use new_db; \. dumpfile.sql 

Os detalhes variam de acordo com as opções usadas ao criar o arquivo de despejo.

Eu comecei a trabalhar seguindo estes passos …

  1. Abra o MySQL Administrator e conecte-se ao servidor

  2. Selecione “Catálogos” à esquerda

  3. Clique com o botão direito do mouse na checkbox inferior esquerda e escolha “Criar novo esquema”

    MySQL Administrator http://img204.imageshack.us/img204/7528/adminsx9.th.gif ampliar imagem

  4. Nomeie o novo esquema (exemplo: “dbn”)

    MySQL New Schema http://img262.imageshack.us/img262/4374/newwa4.th.gif ampliar imagem

  5. Abrir o prompt de comando do Windows (cmd)

    Prompt de Comando do Windows http://img206.imageshack.us/img206/941/startef7.th.gif ampliar imagem

  6. Mude o diretório para a pasta de instalação do MySQL

  7. Execute o comando:

     mysql -u root -p dbn < C:\dbn_20080912.dump 

    … Onde "root" é o nome do usuário, "dbn" é o nome do database e "C: \ dbn_20080912.dump" é o caminho / nome do arquivo mysqldump .dump

    MySQL dump restore linha de comando http://img388.imageshack.us/img388/2489/cmdjx0.th.gif ampliar imagem

  8. Apreciar!

Você pode tentar a ferramenta SQLyog ‘Execute SQL script’ para importar arquivos sql / dump.

insira a descrição da imagem aqui

Se você quiser ver o progresso do despejo tente isto:

pv -i 1 -p -t -e / caminho / para / sql / dump | mysql -u USERNAME -p DATABASE_NAME

Você certamente precisará do ‘pv’ instalado. Este comando funciona apenas no * nix.

 ./mysql -u  -p  -h   < db_dump-file 

Como um exemplo específico de uma resposta anterior:

Eu precisava restaurar um backup para que eu pudesse importar / migrar para o SQL Server. Instalei apenas o MySql, mas não o registrei como um serviço ou o adicionei ao meu caminho, pois não tenho a necessidade de mantê-lo em execução.

Eu usei o Windows Explorer para colocar meu arquivo de despejo em C: \ code \ dump.sql. Em seguida, abra o MySql a partir do item do menu iniciar. Criado o database, em seguida, executou o comando de origem com o caminho completo da seguinte forma:

 mysql> create database temp mysql> use temp mysql> source c:\code\dump.sql 

Execute o comando para entrar no database

  # mysql -u root -p 

Digite a senha do usuário e, em seguida, crie um novo database

 mysql> create database MynewDB; mysql> exit 

E faça exit.Afetr that.Run este comando

 # mysql -u root -p MynewDB < MynewDB.sql 

Então entre no database e digite

 mysql> show databases; mysql> use MynewDB; mysql> show tables; mysql> exit 

Isso é ........ Seu dump será restaurado de um database para outro database

Ou então há uma maneira alternativa de restaurar o dump

 # mysql -u root -p 

Então entre no database e digite

 mysql> create database MynewDB; mysql> show databases; mysql> use MynewDB; mysql> source MynewDB.sql; mysql> show tables; mysql> exit 

Usando um arquivo de dump de 200MB criado no Linux para restaurar no Windows w / mysql 5.5, eu tive mais sucesso com o

 source file.sql 

abordagem a partir do prompt do mysql do que com o

 mysql < file.sql 

abordagem na linha de comando, que causou algum erro 2006 "servidor foi embora" (no windows)

Estranhamente, o serviço criado durante a instalação (mysql) se refere a um arquivo my.ini que não existia. Eu copiei o arquivo de exemplo "grande" para my.ini que eu já tinha modificado com os aumentos aconselhados.

Meus valores são

 [mysqld] max_allowed_packet = 64M interactive_timeout = 250 wait_timeout = 250 

Você não pode usar o menu Restaurar no MySQL Admin se o backup / dump não foi criado a partir daí. Vale a pena um tiro embora. Se você optar por “ignorar os erros” com a checkbox de seleção para isso, ele será concluído com êxito, embora saia claramente com apenas uma fração das linhas importadas … isso é com um despejo, lembre-se.

Comando one-liner para restaurar o SQL gerado a partir do mysqldump

 mysql -u  -p -e "source ;" 

Você também pode usar o menu de restauração no MySQL Administrator. Você só precisa abrir o arquivo de backup e clicar no botão Restaurar.