Mysql
 sql >> Database >  >> RDS >> Mysql

Il modo più semplice per copiare un database MySQL?

Ecco alcune opzioni:

mysqldump

Il modo più semplice e garantito per farlo è usare mysqldump . Vedere le pagine di manuale per l'utilità qui:

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

Fondamentalmente, esegue il dump degli script SQL necessari per ricostruire il contenuto del database, inclusa la creazione di tabelle, trigger e altri oggetti e l'inserimento dei dati (è tutto configurabile, quindi se hai già lo schema impostato da qualche altra parte, puoi basta scaricare i dati, per esempio).

Copiare singoli file di tabelle MyISAM

Se disponi di una grande quantità di dati e stai usando il motore di archiviazione MyISAM per le tabelle che vuoi copiare, puoi semplicemente chiudere mysqld e copiare i file .frm, .myd e .myi da una cartella di database a un'altra (anche su un altro sistema). Questo non funzionerà per le tabelle InnoDB e potrebbe funzionare o meno per altri motori di archiviazione (con i quali ho meno familiarità).

mysqlhotcopy

Se è necessario eseguire il dump del contenuto di un database mentre il server del database è in esecuzione , puoi usare mysqlhotcopy (nota che questo funziona solo per le tabelle MyISAM e Archivio):

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

Copiare l'intera cartella dati

Se stai copiando l'intera installazione del database, quindi, tutti i database e il contenuto di ogni database, puoi semplicemente chiudere mysqld, comprimere l'intera directory dei dati MySQL e copiarla nella directory dei dati del nuovo server.

Questo è l'unico modo (che io sappia) per copiare i file InnoDB da un'istanza all'altra. Funzionerà correttamente se ti stai spostando tra server che eseguono la stessa famiglia di sistemi operativi e la stessa versione di MySQL; può lavorare per spostarsi tra sistemi operativi e/o versioni di MySQL; in cima alla mia testa, non lo so.