sql >> Databasteknik >  >> RDS >> Mysql

Enklaste sättet att kopiera en MySQL-databas?

Här är några alternativ:

mysqldump

Det enklaste, garanterat-fungerande sättet att göra det på är att använda mysqldump . Se manualsidorna för verktyget här:

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

I grund och botten dumpar den SQL-skripten som krävs för att bygga om innehållet i databasen, inklusive skapande av tabeller, utlösare och andra objekt och infogning av data (allt är konfigurerbart, så om du redan har schemat inställt någon annanstans kan du bara dumpa data, till exempel).

Kopiera individuella MyISAM-tabellfiler

Om du har en stor mängd data och om du använder MyISAM-lagringsmotorn för tabellerna som du vill kopiera, kan du bara stänga av mysqld och kopiera .frm-, .myd- och .myi-filerna från en databasmapp till en annan (även på ett annat system). Detta kommer inte att fungera för InnoDB-tabeller och kanske inte fungerar för andra lagringsmotorer (som jag är mindre bekant med).

mysqlhotcopy

Om du behöver dumpa innehållet i en databas medan databasservern är igång , kan du använda mysqlhotcopy (observera att detta bara fungerar för MyISAM och Arkiv-tabeller):

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

Kopierar hela datamappen

Om du kopierar hela databasinstallationen, så, alla databaser och innehållet i varje databas, du kan bara stänga av mysqld, zippa upp hela din MySQL-datakatalog och kopiera den till den nya serverns datakatalog.

Detta är det enda sättet (som jag känner till) att kopiera InnoDB-filer från en instans till en annan. Detta kommer att fungera bra om du flyttar mellan servrar som kör samma OS-familj och samma version av MySQL; det kan arbete för att flytta mellan operativsystem och/eller versioner av MySQL; från toppen av mitt huvud, jag vet inte.



  1. Få PHP MYSQL-rankningsfrågan att rangordna baserat på totalsumman av poäng

  2. Mysql DISTINCT fungerar inte om jag lägger till en annan kolumn

  3. ORA-16789:redo loggar i vänteläge är felaktigt konfigurerade

  4. Finns det en PostgreSQL-motsvarighet till SQL Server Profiler?