Importar tabelas mysql de um dump de banco de dados para um banco de dados independente

1

Este parece ser um pouco óbvio de funcionalidade que o comando mysql incluiria, mas não consigo defini-lo em nenhuma parte da página de manual dele. A minha pergunta é a seguinte: dado um despejo de banco de dados gerado por mysqldump ... <databasename> > file.sql , você pode importar todas as tabelas (e apenas as tabelas) incluídas em um banco de dados separado? Eu provavelmente estou faltando alguma coisa óbvia, eu sou um pouco de noob, desculpe.

    
por Lester Peabody 08.05.2012 / 21:08

2 respostas

4

Claro:

mysql -uusername -ppassword -hdbserver someotherdatabasename < file.sql

Pode haver alguma confusão porque você usa mysqldump para extrair, mas mysql para carregar. Observe que o que sai do comando mysqldump são instruções SQL, portanto, você pode simplesmente direcioná-lo para o comando mysql da linha de comandos. Ou eu estou entendendo mal sua pergunta?

    
por 08.05.2012 / 21:20
0

Se você quiser que apenas a estrutura da tabela seja descartada, crie seu arquivo de despejo usando mysqldump -d ... . Isso excluirá todos os dados do seu dump, deixando apenas a estrutura e quaisquer outros detalhes que você possa incluir (triggers, etc.).

Se você está preso com o despejo que você tem, então você pode usar alguma análise de texto para encontrar o seu caminho. Exceto para as linhas citadas que têm uma linha de retorno nelas, passar seu arquivo através de grep -v '^INSERT' removerá todas as linhas que estão colocando dados em seu banco de dados.

Se você tem entradas mais complicadas onde há retornos de linha no texto, você terá que usar outros filtros regex para analisar linhas que não são comandos SQL válidos.

    
por 08.05.2012 / 21:24

Tags