For at eksportere eller importere med MySQL skal du begynde med at logge på din server, helst med sudo
(rod)adgang.
Eksportere fra MySQL
Det bedste værktøj til at eksportere en MySQL-database til en tekstfil er mysqldump
.
For at bruge mysqldump
, skal du kende loginoplysningerne for en passende MySQL-bruger
der har de nødvendige rettigheder til at eksportere den pågældende database.
Indtast mysqldump
med disse oplysninger i hånden kommando med de relevante flag og muligheder:
$ mysqldump -u my_username -p database_name > output_file_path
Valgmulighederne i brug er:
-u
flag angiver, at MySQLbrugernavn
følger.-p
flag angiver, at vi skal blive bedt omadgangskoden
knyttet til ovenståendebrugernavn
.databasenavn
er selvfølgelig det nøjagtige navn på databasen, der skal eksporteres.> symbol er et Unix-direktiv forSTDOUT
, som tillader Unix-kommandoer at udlæse tekstresultaterne af den udstedte kommando til en anden placering. I dette tilfælde er denne outputplacering en filsti, specificeret afoutput_filsti
.
Bemærk:Det er generelt tilrådeligt at indtaste den fuldt kvalificerede sti og filnavn for output_file_path
, så den resulterende fil genereres præcis, hvor du vil have den.
For eksempel at eksportere bøgerne
database som book_admin
bruger til ~/backup/database
mappe, kan vi bruge følgende kommando:
$ mysqldump -u book_admin -p books > ~/backup/database/books.sql
Enter password:
Efter at have indtastet vores adgangskode, når du bliver bedt om det ovenfor, opretter denne kommando vores backup-fil med en .sql
suffiks (som er helt valgfrit, men tilrådeligt) i den relevante mappe.
Som standard er mysqldump
vil ikke gemme kommandoer, som forsøger at ændre eksistensen af den faktiske database. I stedet er der som standard kun faktiske tabeller
(og deres respektive data) gemmes og vil således blive forberedt til senere import ved hjælp af denne fil. Hvis du har brug for muligheden for at eksportere (og senere genskabe) endnu en database mere, så læs op på --databaserne
flag i den officielle dokumentation.
Import til MySQL
Nu hvor du har lært, hvordan du eksporterer en sikkerhedskopi af en MySQL-database, vil vi undersøge, hvordan du kan vende processen og importere sikkerhedskopien til en eksisterende database.
Som du måske forestiller dig, for at komplimentere mysqldump
kommando, der bruges til eksport, er der en lignende mysqlimport
kommando til import.
I de fleste tilfælde er import blot et spørgsmål om at passere stort set identisk muligheder til mysqlimport
kommando. For at importere vores gemte books.sql
fil oprettet tidligere, ville vi bruge mange af de samme flag og meget den samme syntaks.
$ mysqlimport -u book_admin -p books_production ~/backup/database/books.sql
Enter password:
Som før er -u
og -p
flag er påkrævet til godkendelse, som derefter efterfølges af navnet på databasen
at importere til (i dette tilfælde bruger vi en anden produktionsdatabase), og til sidst angive den fuldt kvalificerede sti til SQL-dumpfilen, der indeholder vores importdata, ~/backup/database/books.sql . Det er også værd at bemærke, at
mysqlimport
kræver ikke <
eller > (STDIN/STDOUT) symboler, der blev brugt med
mysqldump
.
Med det har du lært, hvordan du både eksporterer/sikkerhedskopierer en eksisterende database, og hvordan du derefter importerer/gendanner disse data til den samme eller endda en anden database.