Skip to main content

Hva er mysqldump og hvordan bruker jeg det?

How to Import and Run SQL Script File in Mysql Workbench 6.0 (April 2025)

How to Import and Run SQL Script File in Mysql Workbench 6.0 (April 2025)
Anonim

Som en av de ledende fritt tilgjengelige databasene, er MySQL et populært valg for alle slags webapplikasjoner. Å være utsatt for Internett, er appen din selvfølgelig utsatt for ondsinnede angrep. Hvis serveren din blir skadet, må du i beste fall installere programmet på nytt. i verste fall kan du miste dataene dine helt. Du vil også til slutt være i en situasjon der du må overføre en database fra en server til en annen.

Hva brukes mysqldump til?

De mysqldump verktøyet har du dekket for begge disse situasjonene. Det er grunnleggende funksjon er å ta en MySQL database og "dumpe" den ut som en tekstfil. Men ikke bare noen tekstfil … filen er en sett med SQL-setninger. Disse utsagnene, når de utføres, vil omdanne databasen til den presise tilstanden den var i da du kjørte dumpen.

Så du kan bruke mysqldump å ta eksport av en database. Disse kan være med sikte på sikkerhetskopiering, eller fordi du flytter databasen til en ny vert. I begge tilfeller vil du på et tidspunkt importere Tekstfilen kommer tilbake til en MySQL-databaseserver. Det vil utføre alle SQL-setningene i filen, som gjenoppbygger DB til sin opprinnelige tilstand. Denne delen bruker ikke faktisk mysqldump kommando, men det ville ikke være mulig uten dette verktøyet heller!

MySQL-dokumentene viser andre metoder for sikkerhetskopiering, men alle har sine egne ulemper:

  • Hotcopying en DB fra MySQL Enterprise er en fin måte å oppnå disse sikkerhetskopiene på … hvis du ikke har noe imot Enterprise prislappen.
  • Kopiering av DBs datakataloger kan være vanskelig hvis du beveger deg over operativsystemer, da deres destinasjoner vil være forskjellige.
  • Eksportere til en avgrenset tekstfil vil gi deg innholdet, men du må selv gjenskape strukturen. Og du får det bedre akkurat …
  • Du kan ofte sikkerhetskopiere databaser fra GUI-programmer som MySQL Workbench. Men dette er en manuell prosess, det vil si ikke noe du kan skanne eller inkludere i en batchjobb.

Installere mysqldump-verktøyet

Hvis du er interessert i denne artikkelen, er det sjansene for at du allerede har MySQL installert. Hvis det er tilfelle, gode nyheter, har du allerede mysqldump! Hvis ikke, kan du bare installere MySQL på standard måte for operativsystemet.

For Windows, se våre instruksjoner her for å installere MySQL på Windows 7 (installasjonsprosessen er fortsatt veldig mye den samme). Likeledes på MacOS, se vår veiledning for å installere MySQL på MacOS 10.7 (igjen, eldre, men fortsatt aktuelt). Brukere av Ubuntu-baserte Linux-systemer kan bruke følgende kommando for å installere MySQL-klienten og verktøyene:

sudo apt install mysql-klienten

Ekstra en MySQL Dump

Når du er installert, kan du bruke mysqldump for å få full sikkerhetskopiering av databasen din.

mysqldump -h DB-vertens navn eller IP -u DB-brukerens navn -p databasens navn> db_backup.sql

La oss slå denne kommandoen litt ned:

  • "H": Dette flagget er databasen vert. Det kan være et fullt vertsnavn (for eksempel myhost.domain.com) eller en IP-adresse. Du kan også la dette være tomt hvis du kjører det på samme vert som MySQL-serveren.
  • "U": Som nevnt, er dette din brukernavn.
  • "-P": Hvis du har sikret riktig MySQL-installasjonen, trenger du en passord å koble. Dette flagget uten argument vil be deg om et passord når du kjører kommandoen. Noen ganger er det nyttig å gi passordet ditt direkte som argumentet til dette flagget, for eksempel i et backup-skript. Men i det øyeblikk bør du ikke, fordi hvis noen fikk tilgang til datamaskinen din, kunne de få dette passordet i kommandoboken din.
  • "> db_backup.sql": Denne siste delen forteller mysqldump å rette all sin utgang til en fil. Normalt vil kommandoen sende alt direkte til konsollen, noe som betyr at du vil se en haug med SQL-setninger flyr av. Men i stedet er symbolet *> * et tegn for å trekke alle de tingene i den navngitte tekstfilen i stedet. Og hvis denne filen ikke eksisterer, blir den opprettet automatisk.

Når det er ferdig, har du en .SQL-fil. Dette er bare en tekstfil som inneholder SQL-setninger. Du kan åpne den i et tekstredigeringsprogram for å inspisere innholdet. Ser du på en eksport fra en WordPress-database, kan du se hvordan disse filene blir satt sammen.

Filen er delt opp i seksjoner. I bildet ovenfor kan vi se den første delen setter opp tabellen for WordPress-kommentarer. Den andre seksjonen gjenskaper deretter innholdet (dvs. kommentarsporene) som var i disse tabellene. Når du går for å importere MySQL-dumpen på nytt, vil kommandoen fungere gjennom filen, utføre setningene og gjenoppbygge databasen akkurat slik den var. Så hvordan gjør du det? La oss ta en titt.

Importerer en MySQL Dump File

Før du kan gjøre dette, trenger du en database som allerede er opprettet, og har et gyldig brukernavn og passord. Du bør også ha alle tillatelsene for databasen. (Strengt tatt trenger du ikke STIPEND tillatelse, men det er lettere å bare gi dem alle.) Du finner opplysninger om databasetillatelser i denne artikkelen.

Følg disse trinnene for å importere dataene dine på nytt:

  1. Logg inn på MySQL-serveren med mysql kommando.
  2. Type bruk database navn ved spørringen, erstatte det riktige navnet på DB.
  3. Tast inn kilde filnavn, erstatter navnet på dumpfilen du tok tidligere.

Når du er ferdig, ser du en lang liste med meldinger som merker at SQL-setninger utføres. Hold øye med feil, men hvis du har de riktige tillatelsene, bør du ha det bra, da det er en tom database.

Når prosessen er fullført, får du en duplikat av den opprinnelige databasen. Du kan bekrefte dette ved å gjøre en annen dump, og sammenligne de to utgangene. En anstendig tekstredigerer vil kunne gjøre dette for deg, eller et dedikert * diff * -verktøy som det som er vist i bildet nedenfor:

Det er bare to forskjeller mellom disse filene, som vist med røde linjer øverst og nederst på høyre rullefelt. Den første er linjen som inneholder databasenavnet, og vi forventer at dette skal være annerledes fordi vi oppkalt dem annerledes. Den andre, hele veien på slutten, er tidsstempel for dumpfilen. Og vi forventer også at dette skal være annerledes, da vi gjenskapte den andre databasen etter den første. Ellers er filene akkurat det samme, noe som betyr at databasene som genererte dem, er like bra!