Hier zijn een paar opties:
mysqldump
De gemakkelijkste, gegarandeerd werkende manier om dit te doen, is door mysqldump
. te gebruiken . Bekijk hier de handleidingen voor het hulpprogramma:
http://dev.mysql.com/doc/refman/5.1 /en/mysqldump.html
Kortom, het dumpt de SQL-scripts die nodig zijn om de inhoud van de database opnieuw op te bouwen, inclusief het maken van tabellen, triggers en andere objecten en het invoegen van de gegevens (het is allemaal configureerbaar, dus als je het schema al ergens anders hebt ingesteld, kun je dump de gegevens bijvoorbeeld).
Afzonderlijke MyISAM-tabelbestanden kopiëren
Als u een grote hoeveelheid gegevens heeft en u de MyISAM-opslagengine gebruikt voor de tabellen die u wilt kopiëren, kunt u mysqld gewoon afsluiten en de .frm-, .myd- en .myi-bestanden van de ene databasemap naar de andere kopiëren (zelfs op een ander systeem). Dit werkt niet voor InnoDB-tabellen en werkt mogelijk niet voor andere opslagengines (waar ik minder bekend mee ben).
mysqlhotcopy
Als u de inhoud van een database moet dumpen terwijl de databaseserver actief is , kunt u mysqlhotcopy
. gebruiken (merk op dat dit alleen werkt voor MyISAM- en archieftabellen):
http://dev.mysql.com/doc/refman/5.0 /en/mysqlhotcopy.html
De hele gegevensmap kopiëren
Als u de volledige database-installatie kopieert, dus, alle databases en de inhoud van elke database, je kunt gewoon mysqld afsluiten, je hele MySQL-gegevensmap inpakken en kopiëren naar de gegevensmap van de nieuwe server.
Dit is de enige manier (die ik ken) om InnoDB-bestanden van de ene instantie naar de andere te kopiëren. Dit werkt prima als je wisselt tussen servers met dezelfde OS-familie en dezelfde versie van MySQL; het mag werk voor het schakelen tussen besturingssystemen en/of versies van MySQL; uit mijn hoofd, ik weet het niet.