Importa o dump MySQL contendo CREATE DATABASE e USE para um banco de dados personalizado

1

Recebi um enorme despejo de banco de dados (21 GB) incluindo uma instrução CREATE DATABASE e USE.

Agora, quero importar esse despejo, mas em um banco de dados diferente.

É assim que o despejo se parece (números de linha adicionados por mim)

17: --
18: -- Create schema foo
19: --
20:
21: CREATE DATABASE IF NOT EXISTS foo;
22: USE foo;
23:
24: --  
    
por Alex 10.09.2012 / 16:40

3 respostas

2

Use a cabeça e cauda para remover essa parte do despejo

head foodump.sql -n 16 > processed.sql
tail foodump.sql -n +23 >> processed.sql

Em seguida, importe o processed.sql para o banco de dados.

# mysql
mysql> CREATE mydatabase
mysql> exit
Bye
# mysql mydatabase < processed.sql
    
por 10.09.2012 / 16:40
1

Basta alterar as linhas que dizem Create Database e use :

17: --
18: -- Create schema foo
19: --
20:
21: CREATE DATABASE IF NOT EXISTS foo;
22: USE foo;
23:
24: --  

para:

17: --
18: -- Create schema foo
19: --
20:
21: CREATE DATABASE IF NOT EXISTS DBNAMEYOUWANT;
22: USE DBNAMEYOUWANT;
23:
24: --  

onde DBNAMEYOUWANT é o nome do banco de dados que você deseja criar e importar para.

Você também pode usar sed como:

sed -i "s/^CREATE\ DATABASE\ IF\ NOT\ EXISTS\ foo;/CREATE\ DATABASE\ IF\ NOT\ EXISTS\ DBNAMEYOUWANT;/g" /path/to/dump
sed -i "s/^USE\ foo;/USE\ DBNAMEYOUWANT;/g" /path/to/dump
    
por 10.09.2012 / 16:50
0

Você pode remover manualmente esse par de linhas e depois importá-lo para um banco de dados existente.

    
por 10.09.2012 / 16:45

Tags