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.