Om te exporteren of importeren met MySQL, logt u eerst in op uw server, bij voorkeur met sudo
(root) toegang.
Exporteren vanuit MySQL
De beste tool voor het exporteren van een MySQL-database naar een tekstbestand is mysqldump
.
mysqldump
gebruiken , moet u de inloggegevens van een geschikte MySQL user
weten die de nodige rechten heeft om de betreffende database te exporteren.
Voer met die informatie in de hand de mysqldump
. in commando met de juiste vlaggen en opties:
$ mysqldump -u my_username -p database_name > output_file_path
De gebruikte opties zijn:
- De
-u
vlag geeft aan dat de MySQLusername
zal volgen. - De
-p
vlag geeft aan dat we om hetpassword
moeten worden gevraagd gekoppeld aan de bovenstaandeusername
. database_name
is natuurlijk de exacte naam van de database die moet worden geëxporteerd.- De
>
symbool is een Unix-richtlijn voorSTDOUT
, waarmee Unix-opdrachten de tekstresultaten van de uitgegeven opdracht naar een andere locatie kunnen uitvoeren. In dit geval is die uitvoerlocatie een bestandspad, gespecificeerd dooroutput_file_path
.
Opmerking:het is over het algemeen raadzaam om het volledig gekwalificeerde pad en de bestandsnaam in te voeren voor het output_file_path
, zodat het resulterende bestand precies wordt gegenereerd waar u het wilt hebben.
Om bijvoorbeeld de books
. te exporteren database als de book_admin
gebruiker naar de ~/backup/database
directory, kunnen we het volgende commando gebruiken:
$ mysqldump -u book_admin -p books > ~/backup/database/books.sql
Enter password:
Na het invoeren van ons wachtwoord wanneer hierboven wordt gevraagd, maakt deze opdracht vervolgens ons back-upbestand met een .sql
achtervoegsel (dat volledig optioneel is, maar wel aan te raden) in de juiste map.
Standaard, mysqldump
zal niet save-commando's die proberen het bestaan van de eigenlijke database te wijzigen. In plaats daarvan, standaard, alleen daadwerkelijke tables
(en hun respectievelijke gegevens) worden opgeslagen en worden dus voorbereid voor latere import met behulp van dit bestand. Als je de mogelijkheid nodig hebt om nog een database te exporteren (en later opnieuw te maken), lees dan de --databases
markeren in de officiële documentatie.
Importeren in MySQL
Nu u hebt geleerd hoe u een back-up van een MySQL-database kunt exporteren, gaan we onderzoeken hoe u het proces kunt omkeren en kunt importeren de back-up in een bestaande database.
Zoals je je misschien kunt voorstellen, als aanvulling op de mysqldump
commando gebruikt voor het exporteren, is er een gelijkaardige mysqlimport
commando voor importeren.
In de meeste gevallen is importeren slechts een kwestie van vrijwel identiek opties naar de mysqlimport
opdracht. Om onze opgeslagen books.sql
te importeren bestand dat eerder is gemaakt, zouden we veel van dezelfde vlaggen en vrijwel dezelfde syntaxis gebruiken.
$ mysqlimport -u book_admin -p books_production ~/backup/database/books.sql
Enter password:
Zoals eerder, de -u
en -p
vlaggen zijn vereist voor authenticatie, gevolgd door de naam van de database
om in te importeren (in dit geval gebruiken we een andere productiedatabase), en als laatste het volledig gekwalificeerde pad specificeren naar het SQL-dumpbestand dat onze importgegevens bevat, ~/backup/database/books.sql
. Het is ook vermeldenswaard dat mysqlimport
vereist niet de <
of >
(STDIN/STDOUT) symbolen die werden gebruikt met mysqldump
.
Daarmee heb je geleerd hoe je zowel een bestaande database kunt exporteren/back-uppen als hoe je die gegevens vervolgens kunt importeren/herstellen in dezelfde of zelfs een andere database.