sql >> Database >  >> RDS >> Mysql

Importeren van en exporteren naar bestanden met behulp van de MySQL-opdrachtregel

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 MySQL username zal volgen.
  • De -p vlag geeft aan dat we om het password moeten worden gevraagd gekoppeld aan de bovenstaande username .
  • database_name is natuurlijk de exacte naam van de database die moet worden geëxporteerd.
  • De > symbool is een Unix-richtlijn voor STDOUT , waarmee Unix-opdrachten de tekstresultaten van de uitgegeven opdracht naar een andere locatie kunnen uitvoeren. In dit geval is die uitvoerlocatie een bestandspad, gespecificeerd door output_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.


  1. Meerdere rijen invoegen met pg-promise

  2. Fout bij neerzetten van database (kan '.test\' niet rmdir, fout:17)

  3. Hoe verbinding maken met MySQL-database?

  4. Waarom elk klein bedrijf een database nodig heeft