Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Maneira mais fácil de copiar um banco de dados MySQL?


Aqui estão algumas opções:

mysqldump

A maneira mais fácil e garantida de fazer isso é usar mysqldump . Consulte as páginas de manual do utilitário aqui:

http://dev.mysql.com/doc/refman/5.1 /en/mysqldump.html

Basicamente, ele despeja os scripts SQL necessários para reconstruir o conteúdo do banco de dados, incluindo criação de tabelas, triggers e outros objetos e inserção dos dados (é tudo configurável, então se você já tem o esquema configurado em outro lugar, você pode apenas despeje os dados, por exemplo).

Copiando arquivos de tabela MyISAM individuais

Se você tiver uma grande quantidade de dados e você está usando o mecanismo de armazenamento MyISAM para as tabelas que deseja copiar, você pode simplesmente desligar o mysqld e copiar os arquivos .frm, .myd e .myi de uma pasta de banco de dados para outra (mesmo em outro sistema). Isso não funcionará para tabelas InnoDB e pode ou não funcionar para outros mecanismos de armazenamento (com os quais estou menos familiarizado).

mysqlhotcopy

Se você precisar despejar o conteúdo de um banco de dados enquanto o servidor de banco de dados estiver em execução , você pode usar mysqlhotcopy (observe que isso só funciona para tabelas MyISAM e Archive):

http://dev.mysql.com/doc/refman/5.0 /en/mysqlhotcopy.html

Copiando toda a pasta de dados

Se você estiver copiando toda a instalação do banco de dados, assim, todos os bancos de dados e o conteúdo de cada banco de dados, você pode simplesmente desligar o mysqld, compactar todo o diretório de dados do MySQL e copiá-lo para o diretório de dados do novo servidor.

Esta é a única maneira (que eu conheço) de copiar arquivos InnoDB de uma instância para outra. Isso funcionará bem se você estiver se movendo entre servidores executando a mesma família de SO e a mesma versão do MySQL; ele pode trabalhar para mover entre sistemas operacionais e/ou versões do MySQL; de cabeça, não sei.