För att exportera eller importera med MySQL, börja med att logga in på din server, helst med sudo
(root) åtkomst.
Exportera från MySQL
Det bästa verktyget för att exportera en MySQL-databas till en textfil är mysqldump
.
För att använda mysqldump
, måste du känna till inloggningsuppgifterna för en lämplig MySQL-användare
som har nödvändiga rättigheter för att exportera databasen i fråga.
Med den informationen i handen anger du mysqldump
kommandot med lämpliga flaggor och alternativ:
$ mysqldump -u my_username -p database_name > output_file_path
Alternativen som används är:
-u
flaggan indikerar att MySQLanvändarnamn
kommer att följa.-p
flaggan indikerar att vi bör uppmanas att angelösenordet
kopplat till ovanståendeanvändarnamn
.databasnamn
är naturligtvis det exakta namnet på databasen som ska exporteras.> symbol är ett Unix-direktiv förSTDOUT
, som tillåter Unix-kommandon att mata ut textresultaten för det utfärdade kommandot till en annan plats. I det här fallet är den utdataplatsen en filsökväg, specificerad avoutput_file_path
.
Obs! Det är i allmänhet tillrådligt att ange den fullständiga sökvägen och filnamnet för output_file_path
, så den resulterande filen genereras precis där du vill ha den.
Till exempel för att exportera böckerna
databas som book_admin
användare till ~/backup/database
katalog kan vi använda följande kommando:
$ mysqldump -u book_admin -p books > ~/backup/database/books.sql
Enter password:
Efter att ha angett vårt lösenord när du uppmanas ovan, skapar detta kommando sedan vår säkerhetskopia med en .sql
suffix (vilket är helt valfritt men tillrådligt) i lämplig katalog.
Som standard är mysqldump
kommer inte spara kommandon som försöker ändra existensen av den faktiska databasen. Istället, som standard, endast faktiska tabeller
(och deras respektive data) sparas och kommer därför att förberedas för senare import med den här filen. Om du behöver möjligheten att exportera (och senare återskapa) ytterligare en databas, läs på --databaser
flagga i den officiella dokumentationen.
Importera till MySQL
Nu när du har lärt dig hur du exporterar en säkerhetskopia av en MySQL-databas kommer vi att utforska hur du vänder på processen och importerar säkerhetskopian till en befintlig databas.
Som du kanske föreställer dig, för att komplettera mysqldump
kommando som används för export, det finns en liknande mysqlimport
kommando för import.
I de flesta fall är import bara en fråga om att passera nästan identisk alternativ till mysqlimport
kommando. För att importera våra sparade books.sql
fil som skapats tidigare, skulle vi använda många av samma flaggor och ungefär samma syntax.
$ mysqlimport -u book_admin -p books_production ~/backup/database/books.sql
Enter password:
Som tidigare, -u
och -p
flaggor krävs för autentisering, som sedan följs av namnet på databasen
att importera till (i det här fallet använder vi en annan produktionsdatabas), och slutligen ange den fullständiga sökvägen till SQL-dumpfilen som innehåller våra importdata, ~/backup/database/books.sql . Det är också värt att notera att
mysqlimport
kräver inte <
eller > (STDIN/STDOUT) symboler som användes med
mysqldump
.
Med det har du lärt dig hur du både exporterar/säkerhetskopierar en befintlig databas och hur du sedan importerar/återställer data till samma eller till och med en annan databas.