Back-up en herstel van de MySQL-database (MariaDB) met mysqldump. Wat is een MySQL-databasedump en hoe u dit doet?

Het is vreemd, maar het is best moeilijk om deze informatie op internet te vinden. Een hele hoop linkse aanbevelingen. Maar eigenlijk is alles eenvoudig. U kunt de dump herstellen met het commando:

# mysql-omhoog< mysql_dump.sql.

Vervang in plaats daarvan de gebruikersnaam, ik doe persoonlijk het herstel vanaf de root. En in mysql_dump, sql, wordt feitelijk de dump gemaakt mysqldump nutsvoorziening. De optie -p geeft autorisatie met een wachtwoord aan; na het indrukken van enter wordt u om het wachtwoord gevraagd. Dat is eigenlijk alles. Je kunt een dump maken met het commando:

# mysqldump-u root -p -f databasenaam > bestand_met_dump.sql

Hier specificeert de parameter -f database_name de naam van de database die we opslaan. Als je alles nodig hebt, vervangen we het door --alle databases. Deze optie geeft aan dat alle databases op de server worden opgeslagen. Om het wachtwoord niet elke keer in te voeren, kunt u het rechtstreeks in de opdracht opgeven (dit is nodig als u een crondump vanuit een script doet), maar vanuit veiligheidsoogpunt rijzen hier vragen, vooral als de wachtwoord is wortel voor de spier. Nu, als de spier tenminste md5-wachtwoorden zou begrijpen... Het is echter geen feit dat hij het niet begrijpt, misschien weet ik het niet :)

Auteur

Alex Razgibalov

Een gekke man, van onbepaalde leeftijd, die lijdt aan een waan van vervolging. Pathologisch wantrouwend, egoïstisch, autoritair. Secundaire diagnoses - programmeur en assistent. Bezit Engels op een niveau van ongeveer waardeloze conversatie. Ook bekend met enkele andere talen. Hij is geïnteresseerd in alles en iedereen, waardoor zijn kennis op welk gebied dan ook oppervlakkig en oppervlakkig is. Het karakter is oncontroleerbaar. Sterkte - 55 graden.

Meestal kunt u uw database eenvoudig beheren via webtools zoals PHPMyAdmin. Helaas zijn er momenten waarop herstel nodig is groot aantal gegevens. Dit kan niet worden bereikt via PHPMyAdmin vanwege buiten PHP (de maximale looptijd van het script staat dit niet toe of het is onmogelijk om te laden groot archief uit de databank).

MySQL gebruiken vanaf de opdrachtregel

Als u MySQL op Linux of MS Windows gebruikt, kunt u de opdrachtregel gebruiken om de meeste taken uit te voeren. Als u MS Windows gebruikt, zorg er dan voor dat het pad naar de uitvoerbare bestanden op de opdrachtregel is opgenomen in het systeempad. Anders moet u het volledige pad naar elke opdracht invoeren.

Een back-up maken van een MySQL-database

MySQL biedt een hulpprogramma genaamd "mysqldump." Kortom, deze tool maakt een plat bestand aan met MySQL-instructies om de database te repareren. Hier zijn enkele voorbeelden van het gebruik van mysqldump:

Een eenvoudige databaseback-up maken

# mysqldump -u gebruikersnaam -p DB_naam > uw_bestand.sql

Hiermee wordt een bestand gemaakt met alle MySQL-instructies voor het maken van tabellen en het herstellen van gegevens bestaande basis gegevens. Als de doeldatabase tabellen met dezelfde naam bevat, worden deze overschreven. Als u wilt dat bestaande tabellen worden verwijderd en opnieuw worden gebruikt, gebruikt u de optie "add-drop-table":

# mysqldump --add-drop-table -u gebruikersnaam -p DB_naam > uw_bestand.sql

Je kunt dit ook als alternatief kiezen:

# mysqldump --add-drop-databases -u gebruikersnaam -p DB_naam > uw_bestand.sql

Maak een back-up van meerdere databases

U kunt een kopie maken van meerdere databases in één bestand met behulp van de databaseoptie:

# mysqldump -u gebruikersnaam -p --databases uw_database1 uw_database2 uw_database3 > uw_bestand.sql

Het maken van een back-up van alle databases kan worden bereikt met behulp van de optie voor alle databases:

# mysqldump -u gebruikersnaam -p --all-databases > jouw_bestand.sql

Een back-up maken van InnoDB-tabellen

Als de database InnoDB-kolommen heeft, moet u de referentiële integriteit uitschakelen wanneer u de gegevens herstelt. Helaas kan dit niet worden gedaan met het hulpprogramma mysqldump. Om dit te doen, moet je het bestand zelf openen en toevoegen:

SET FOREIGN_KEY_CHECKS = 0;
... En voeg het volgende toe aan het einde van het bestand:
SET FOREIGN_KEY_CHECKS = 1;

MySQL-dumpbestanden comprimeren

Als u mysqldump gebruikt in Linux-shell, kunt u via Gzip comprimeren om het dumpbestand te comprimeren (ervan uitgaande dat gzip is geïnstalleerd):

# mysqldump -u gebruikersnaam -p uw_databasenaam | gzip -c jouw_bestand.sql.gz

Herstellen vanaf een MySQL-back-up

Om een ​​back-up gemaakt met mysqldump te herstellen, moet u de MySQL-opdracht gebruiken. Als uw MySQL-dumpbestand geen "Create Database" o bevat, kunt u de volgende opdracht gebruiken:

# mysql -u gebruikersnaam -p uw_databasenaam< your_file.sql

Maar als dit lukt, gebruik dan dezelfde opdracht zonder de databasenaam op te geven:

# mysql -u gebruikersnaam -p< your_file.sql

Meer gedetailleerde informatie over mysqldump is te vinden op de officiële MySQL-website.

./mysql -u -P H < db_dump-file

2018-12-04T00:00Z

2018-12-11T00:00Z

Wanneer we een dumpbestand maken met mysqldump, bevat het een groot SQL-script om de inhoud van de database opnieuw te creëren. Dus we herstellen het door de opdrachtregel van de MySQL-client uit te voeren:

Mysql -uroot -p

(waarbij root onze beheerdersgebruikersnaam voor MySQL is) en nadat we verbinding hebben gemaakt met de database, hebben we opdrachten nodig om de database te maken en het bestand te lezen:

Database new_db maken; gebruik nieuwe_db; \. dumpbestand.sql

De details variëren afhankelijk van welke opties zijn gebruikt bij het maken van het dumpbestand.

2018-12-18T00:00Z

Je hoeft alleen maar dit uit te voeren:

mysql-p-u< db_backup.dump

Als de dump meerdere databases bevat, moet u de databasenaam weglaten:

mysql-p-u< db_backup.dump

Om deze opdrachten uit te voeren, opent u een opdrachtprompt (in Windows) en cdt u naar de map waar mysql.exe zich bevindt uitvoerbaar bestand mysql.exe (misschien moet u er even over nadenken, het zal afhangen van hoe u mysql hebt geïnstalleerd, dat wil zeggen standalone of als onderdeel van een pakket zoals WAMP). Wanneer u zich in deze map bevindt, hoeft u alleen maar de opdracht in te voeren.

2018-12-25T00:00Z

Het zou zo eenvoudig moeten zijn als dit uitvoeren:

Mysql-u -P< db_backup.dump

Als de dump één enkele database heeft, moet u mogelijk een regel bovenaan het bestand toevoegen:

GEBRUIK ;

Als het een dump van veel databases is, zijn de gebruiksinstructies al aanwezig.

Om deze opdrachten uit te voeren, opent u een opdrachtprompt (op Windows) en cdt u naar de map waar mysql.exe het uitvoerbare bestand mysql.exe bevat (u moet er misschien even over nadenken, het zal afhangen van hoe u mysql hebt geïnstalleerd, d.w.z. zelfstandig of als onderdeel van een pakket zoals WAMP). Als u zich eenmaal in die map bevindt, kunt u eenvoudig de opdracht typen zoals ik hierboven deed.

01-01-2019T00:00Z

Eénregelige opdracht om gegenereerde SQL uit mysqldump te herstellen

Mysql-u -P E"bron

2019-01-08T00:00Z

Met behulp van een dumpbestand van 200 MB gemaakt op Linux om te herstellen op Windows met mysql 5.5, had ik meer succes Met

Bronbestand.sql

mysql-opdrachtregelbenadering dan het gebruik

mysql< file.sql

opdrachtregelbenadering die in 2006 een 'server has left'-fout veroorzaakt (in Windows)

Vreemd genoeg verwijst de service die tijdens de (mysql)installatie is gemaakt naar een my.ini-bestand dat er niet was. Ik heb het "grote" voorbeeldbestand naar my.ini gekopieerd, dat ik al had aangepast met de aanbevolen vergroting.

Mijn waarden

Max_allowed_packet = 64M interactieve_timeout = 250 wait_timeout = 250

2019-01-15T00:00Z

Als concreet voorbeeld vorig antwoord:

Ik moest de back-up herstellen, zodat ik deze kon importeren/overbrengen naar SQL-server. Ik heb alleen MySql geïnstalleerd, maar heb het niet als een service geregistreerd en heb het ook niet aan mijn pad toegevoegd, omdat ik het niet hoef uit te voeren.

Ik gebruikte Windows Verkenner om mijn dumpbestand in C:\code\dump.sql te plaatsen. Open vervolgens MySql via het menu-item Start. De DB gemaakt en vervolgens de source-opdracht uitgevoerd met de volledige weg als volgt:

Mysql> maak database temp mysql> gebruik temp mysql> bron c:\code\dump.sql

Van de auteur: Ik kwam op bezoek bij een vriend, en zijn vrouw was hysterisch, de papegaai schreeuwde: "Mai-es-qu-el-dump." De vriend zelf ligt met hoofdpijn en een manisch verlangen om erachter te komen hoe herstel van een dump plaatsvindt in MySQL. Laten we, om de hoofden van de rest van de ‘onwetenden’, de zenuwen van hun vrouwen en de stembanden van papegaaien te redden, dit onderwerp in meer detail bekijken.

Gevaar "All-inclusive"

Mijn vriend gebruikt, net als veel nieuwelingen softwarepakketten"All-inclusive." De meest voorkomende in RuNet is heren setje"Deventer". En met zijn “complexiteit” (het omvat lokale server, een shell voor het werken met een DBMS, MySQL-server) drijft hij deze ‘heren’ tot het punt van waanzin.

De selectie van Denver bevat er slechts een paar standaard nutsvoorzieningen voor het werken met MySQL. En aangezien wij allemaal moderne mensen, dan gaan we voor de ontbrekende informatie (om de essentie van iets te begrijpen) naar internet. Maar de materialen die op internet zijn gepubliceerd, zeggen niet dat voor het uitvoeren van bepaalde sets opdrachten gespecialiseerde hulpprogramma's nodig zijn in het standaard MySQL-pakket. Bijvoorbeeld om een ​​databasedump te maken MySQL-gegevens, hebt u het MySQLDump-programma nodig.

Als u Denwer ook gebruikt om uw code te trainen en te testen, en de in dit materiaal beschreven query's worden niet uitgevoerd op de opdrachtregel, ga dan naar: D:\Webserver\usr\local\mysql-5.5\bin

En kijk welke hulpprogramma's voor het werken met de DBMS-server "aan boord" beschikbaar zijn klantmachine. Ik herhaal nogmaals: vandaag hebben we het MySQLDump-programma nodig.

Werken met MySQLDump

Dit hulpprogramma is een regulier “uitvoerbaar” bestand, dat na het downloaden in het bestand moet worden geplaatst map bin(het pad ernaartoe wordt aangegeven in het eerste deel van het materiaal). Dit kleine toepassing Hiermee kunt u "algemene" problemen oplossen - herstellen vanaf een dump in MySQL, back-ups maken en back-upparameters configureren.

Het hulpprogramma heeft geen eigen interface, je werkt er dus mee via de standaard CMD die meegeleverd wordt standaard ingesteld Windows-programma's(start via het Startmenu). En nu stap voor stap:

Eerst gaan we naar de virtuele schijf (gemaakt na het starten van Apache, onderdeel van Denver).

Als u geen herenset gebruikt, betekent dit niet dat u geen heer bent. U hoeft alleen deze stap van de instructies over te slaan.

Geef vervolgens met behulp van de opdracht cd (change directory) het pad op naar de map waarin MySQL is geïnstalleerd. In Denver bevindt deze map zich hier: Z:\usr\local\mysql-5.5\bin

Wanneer u het databasebeheersysteem afzonderlijk installeert, bevindt deze map zich: C:\Program Files…

Omdat we ons al op de gewenste (virtuele) schijf bevinden, hoeven we na het cd-commando slechts een deel van het pad op te geven:

Laten we de functionaliteit van de applicatie controleren en een MySQL-dump maken van de database, die zich op onze server bevindt. Bijvoorbeeld de “wordpress”-database. Om dit te doen, zullen we het gelijknamige hulpprogramma gebruiken mysql-opdracht dumpen. Hier is de syntaxis:

mysqldump -u gebruikersnaam -p wachtwoord naam_database > backup-database.sql

mysqldump -u gebruikersnaam -p wachtwoord naam_database > backup-database. sql

Voorbeeld van het gebruik van de opdracht:

mysqldump -uroot wordpress>Z:\home\localhost\dump\wp_copy.sql

mysqldump - uroot wordpress > Z:\home\localhost\dump\wp_copy. sql

Als gevolg hiervan ontvingen we een databasedump van de WordPress-site:

Wat is een puinhoop?

Als u niets weet over een MySQL-databasedump, en u kunt moeilijk raden wat het is, dan deze sectie voor jou. Een dump is een type databaseback-up. Nauwkeuriger gezegd: databasekopiebestanden (afhankelijk van het type en de aanmaaktool) kunnen dataregels bevatten bepaald soort, en bevatten ook SQL-query's om verloren informatie, de structuur en parameterwaarden ervan te reconstrueren.

Laten we, om niet ongegrond te zijn, de kopie van wp_copy openen die we hebben gemaakt met het standaard Kladblok. Na een korte studie van de inhoud zullen we zien dat het vrijwel geheel uit queries bestaat die gebruikt kunnen worden om de structuur van databasetabellen en hun inhoud te reconstrueren.

Herstel testen

Als uw handen jeuken en zeep niet helpt, voeren we een “testrun” uit van het hulpprogramma. Eerst zullen we via phpMyAdmin (om het sneller te maken) een test-“Auto”-database maken met twee tabellen. Laten we de ene “auto” noemen en de andere “kleur”. Voeg voor de duidelijkheid een paar regels met gegevens toe.

Laten we nu een MySQL-dump maken van de database waarin we geïnteresseerd zijn. We bewaren de back-up op dezelfde plaats. Aanvraagcode:

mysqldump -uroot auto>Z:\home\localhost\dump\auto_copy.sql

mysqldump - uroot auto > Z:\home\localhost\dump\auto_copy. sql

Als we naar de dumpmap gaan, zien we dat het hulpprogramma een kopie “auto_copy” heeft gemaakt.

MySQL-databasedump is bekend bij elke webmaster. Dit is niet verrassend, omdat deze procedure wordt uitgevoerd als onderdeel van een back-up of overdracht van een database naar een andere hosting.

Daarom is het voor elke webontwikkelaar belangrijk om te weten hoe u een MySQL-database moet dumpen. Wat is het? Dit is een bestand met instructies voor SQL-taal, waardoor zowel qua inhoud als structuur een exacte kopie van uw database ontstaat. Voor welke situaties moet u de MySQL-database dumpen:

  • Een database overbrengen naar een andere server

Een dump kan nodig zijn als u van plan bent uw database naar een andere hosting over te zetten. Met zijn hulp kun je zonder problemen recreëren exacte kopie oude basis gegevens.

  • Databaseback-up

Virtuele websitehosting, inclusief dagelijks back-up. Regelmatige gegevensback-ups besparen u veel moeite en zenuwen in geval van onvoorziene situaties. Mislukt experiment met de site of een servercrash kan leiden tot het verlies van de hele database, en alleen een tijdige dump zal u in deze situatie helpen. Uiteraard kan het niet op dezelfde server worden opgeslagen als de hoofddatabase, omdat u anders alle informatie verliest zonder de mogelijkheid van herstel.

Hoe een MySQL-database dumpen?

Er zijn verschillende manieren een dump maken, en dan zullen we kijken naar de belangrijkste opties:

  • Een dump maken met behulp van de MySQL-console

In dit geval gebruikt u om een ​​databasedump te maken opdrachtregel of de MySQL-console, waar u de opdracht mysqldump -uuser -ppass db_name > file_to_save moet invoeren. In dit geval is user de naam van de databasegebruiker met voldoende rechten om een ​​dump te maken, pass is het wachtwoord voor de database, db_name is de naam van de gewenste database en in plaats van file_to_save moet u de naam van het bestand opgeven waar de dump wordt opgeslagen.

Na het correct invoeren van de opdracht in opgegeven locatie er verschijnt een bestand met de extensie .sql, wat een databasedump is. Deze methode is het meest universeel en populair onder gebruikers van Unix-systemen, bijvoorbeeld Ubuntu, als dit plotseling nodig is MySQL-migratie naar een andere server. In hetzelfde geval, als je het niet weet console-opdrachten, je hebt extra nodig software.

  • Een databasedump maken met phpMyAdmin

Als u liever aanvullende software gebruikt, kunt u de database dumpen met behulp van PHP met behulp van bijvoorbeeld phpMyAdmin. Om dit te doen, volgt u deze stappen:

  1. Log in op phpMyAdmin.
  2. Selecteer de noodzakelijke basis gegevens uit de algemene lijst.
  3. Log in op de geselecteerde database.
  4. Na autorisatie bevat de linkerkolom de database zelf en de bijbehorende service-informatie. Nu moet u uw database opnieuw selecteren.
  5. Ga naar het tabblad "Exporteren" en schakel vervolgens enkele instellingen in, namelijk:

    Voeg DROP TABLE/VIEW/PROCEDURE/FUNCTION/EVENT toe

    Met deze optie kunt u in de toekomst zonder angst herstellen. MySQL-database van stortplaats. Alle tabellen met dezelfde naam worden eerst verwijderd, dat wil zeggen dat de opdracht dpop wordt uitgevoerd en vervolgens wordt vervangen door soortgelijke tabellen uit uw dump. Als gevolg hiervan beschermt u uzelf tegen het maken van dubbele tabellen en als gevolg daarvan storing databases.

    Pak met ritssluiting

    Als u deze optie inschakelt, zorgt u ervoor dat uw DB-dump wordt gearchiveerd en dat u een bestand krijgt met de extensie .zip. Hierdoor kunt u de dump snel en correct opslaan, zelfs met een lage verbindingssnelheid.

  6. U ontvangt een kant-en-klare databasedump. Als alles correct is gedaan, heb je een archief met een bestand met de extensie .sql - een dump van de database die je nodig hebt.

Nu weet je hoe je het moet doen MySQL-dump, als u de database plotseling naar een andere server moet overbrengen of als er zich een andere situatie voordoet waarin dit nuttig kan zijn back-up DB. Naast de hierboven beschreven manieren zijn er natuurlijk nog veel meer manieren om een ​​dump te maken. Maar zelfs het bezit van het meest eenvoudige opties en als u ze in de praktijk regelmatig toepast, kunt u er zekerder van worden onvoorziene situatie, omdat het voldoende is om simpelweg een MySQL-dump te implementeren en snel alle databases te herstellen.

Als u besluit een dedicated server van ons bedrijf te kopen, krijgt u daar 100 GB voor externe server back-ups, waar u automatische back-ups van sites en databases kunt configureren. In dit geval beschikt u altijd over een nieuwe MySQL-dump.

In het geval dat u nog steeds problemen ondervindt bij het maken van een dump en het wijzigen van een server of hosting, kunt u contact opnemen met de technische ondersteuningsmedewerkers van RigWEB, en zij zullen al uw vragen binnen hun competentie beantwoorden. Mocht u dit om wat voor reden dan ook niet zelf kunnen, dan verhuizen onze specialisten uw website gratis van een andere hosting naar de onze. Ook zorgen wij voor regelmatige back-ups en tijdige verstrekking van actuele kopieën van uw gegevens indien nodig. Met professionele RigWEB hosting weet u het zeker maximale bescherming uw project tegen verrassingen!