Recentemente, comecei um novo projeto na Sevilha Contabilidade. Por ser uma contabilidade que está há 25 anos no mercado, a base de dados dela é um pouco grande. Por isso, precisei procurar na Internet uma forma de exportar/importar o banco de dados deles para ter um ambiente de desenvolvimento local.
A maioria dos programadores utiliza o PHPMyAdmin para gerenciar as bases de dados MySQL. Essa ferramenta é excelente e muito boa, na minha opinião. Porém algumas operações que precisamos fazer no MySQL não podem ser realizadas pela interface do PHPMyAdmin. Uma delas é a importação/exportação de grandes bases de dados.
Abaixo seguem alguns comandos que utilizei para a importação/exportação dessa base de dados. Nos códigos abaixo, por favor, mude:
[USERNAME] pelo seu usuário do MySQL;
[DBNAME] pelo nome do banco de dados;
[/path_to_mysql/] pelo caminho até o executável do MySQL. (Se você usa o xampp: c:\xampp\mysql\bin )
Copiando/exportando uma base de dados
O MySQL não tem uma função de cópia. Para fazer uma cópia do banco de dados, você precisa realizar um DUMP do banco de dados. Para fazer isso, você pode usar o seguinte comando:
mysqldump -u [USERNAME] -p [DBNAME] | gzip > [/path_to_file/DBNAME].sql.gz
Isso pedirá sua senha e exportará em GZIP sua base de dados. Prefira fazer usando o GZIP e depois você descompacta o arquivo – fica bem mais rápido.
Importando uma base de dados grande
Para importar o banco, você precisa descompactar o arquivo. Para isso, utilize o WinRar, por exemplo, ou outro programa de que goste e que tenha a funcionalidade de descompactar esse tipo de arquivo, ou faça desta forma aqui:
gzip -d [/path_to_file/DBNAME].sql.gz
O resultado disso será o script .sql. Com posse do script, execute o seguinte comando que solicitará a senha do usuário:
[/path_to_mysql/]mysql -u [USERNAME] -p
Após ter logado com sucesso, execute os seguintes comandos:
SHOW DATABASES;
DROP DATABASE [DBNAME];
CREATE DATABASE [DBNAME];
USE [DBNAME];
SOURCE [/path_to_file/DBNAME].sql;
Observações
Este artigo é uma tradução/outra versão deste: http://www.lullabot.com/blog/importexport-large-mysql-databases
No artigo original, tem mais um item, que é o DUMP Condicional. Eu não coloquei neste artigo para deixá-lo mais simples, mas, se quiser, acesse o artigo original e leia sobre isso.