GettyImages 942201142 8fed95f6488c4c32b9e792e54214ff3e

Yhtenä johtavista vapaasti saatavilla olevista tietokannoista MySQL on suosittu valinta monille verkkosovelluksille. Sovelluksesi on alttiina Internetiin ja haitallisille hyökkäyksille. Parhaassa tapauksessa, jos palvelimesi on vaarantunut, sinun tulee asentaa sovellus uudelleen. pahimmassa tapauksessa saatat menettää tietosi. Lisäksi saatat joutua tilanteeseen, jossa sinun on siirrettävä tietokanta palvelimelta toiselle.

Mihin mysqldumpia käytetään?

Mysqldump-työkalulla suojaudut sekä palvelimen kompromisseista että siirtotilanteista. Sen perustehtävä on ottaa MySQL-tietokanta ja tyhjentää se tekstitiedostona. Mutta ei tekstitiedostoa; tiedosto on joukko SQL-lauseita. Kun nämä käskyt suoritetaan, tietokanta rakennetaan uudelleen täsmälleen siihen tilaan, jossa se oli vedosten suorittamisen yhteydessä. Käytä mysqldumpia viedäksesi tietokannan varmuuskopioksi tai siirtäessäsi tietokantaa uuteen isäntään. Kummassakin tapauksessa tekstitiedosto tuodaan takaisin MySQL-tietokantapalvelimeen. Se suorittaa kaikki tiedoston SQL-käskyt palauttaen tietokannan alkuperäiseen tilaan. Tämä osa ei käytä mysqldump-komentoa, mutta se ei olisi myöskään mahdollista ilman tätä apuohjelmaa. MySQL-dokumentit mainitsevat muita varmuuskopiointimenetelmiä, mutta näillä on haittoja:

  • MySQL Enterprise -tietokannan pikakopiointi on loistava tapa luoda näitä varmuuskopioita – jos Enterprise-hintalappu ei haittaa.
  • Tietokannan tietohakemistojen kopioiminen voi olla hankalaa siirryttäessä käyttöjärjestelmien välillä, koska kohteet ovat erilaisia.
  • Jos viet rajattuun tekstitiedostoon, saat sisällön, mutta sinun on luotava rakenne uudelleen.
  • Voit usein varmuuskopioida tietokantoja GUI-ohjelmista, kuten MySQL Workbench. Mutta tämä on manuaalinen prosessi; ei jotain, jota voit kirjoittaa tai sisällyttää erätyöhön.

Asenna mysqldump työkalu

Katso Windowsille ohjeet MySQL:n asentamisesta Windows 7:ään (asennusprosessi on sama Windows 10:ssä). Katso macOS:ssä ohjeet MySQL:n asentamisesta macOS 10.7:ään (jälleen vanhempi, mutta edelleen soveltuva). Ubuntu-pohjaisten Linux-järjestelmien käyttäjät voivat käyttää seuraavaa komentoa MySQL-asiakkaan ja apuohjelmien asentamiseen: sudo apt install mysql-client

Pura MySQL-vedos

Kun olet asentanut, käytä mysqldumpia saadaksesi täyden varmuuskopion tietokannasta. mysqldump -h [your DB host’s name or IP] -sinä [the DB user’s name] -s [the database name] > db_backup.sql

Tässä on kuvaus tässä komennossa käytetyistä lipuista:

  • -h: Tämä lippu on tietokannan isäntä. Tämä voi olla täydellinen isäntänimi (esimerkiksi myhost.domain.com) tai IP-osoite. Jätä tämä tyhjäksi, jos käytät komentoa samassa isännässä kuin MySQL-palvelin.
  • -sinä: Sinun käyttäjä nimesi.
  • -s: Jos olet suojannut MySQL-asennuksen oikein, tarvitset salasanan yhteyden muodostamiseen. Tämä lippu ilman argumenttia pyytää salasanaa, kun suoritat komennon. Joskus on hyödyllistä antaa salasana suoraan argumenttina tälle lipulle, esimerkiksi varmuuskopiossa. Mutta kehotteessa sinun ei pitäisi, koska jos joku käyttäisi tietokonettasi, hän voisi saada tämän salasanan komentohistoriaan.
  • > db_backup.sql: Tämä osa käskee mysqldumpin lähettämään tulosteen tiedostoon. Normaalisti komento tulostaa kaiken konsoliin, mikä tarkoittaa, että näet useita SQL-lauseita näytöllä. Symboli > ohjaa lähdön nimettyyn tekstitiedostoon. Jos tätä tiedostoa ei ole olemassa, se luodaan automaattisesti.

Kun se on valmis, sinulla on .SQL-tiedosto. Tämä on tekstitiedosto, joka sisältää SQL-lauseita. Voit avata sen missä tahansa tekstieditorissa tarkastaaksesi sen sisällön. Tässä on vienti WordPress-tietokannasta, joka näyttää kuinka nämä tiedostot kootaan.

Tiedosto on jaettu osiin. Ensimmäisessä osiossa määritetään WordPress-kommenttien taulukko. Toinen osa luo uudelleen näiden taulukoiden sisällön (tässä esimerkissä kommenttitietueet). Kun tuot MySQL-vedosvedoksen uudelleen, komento käy läpi tiedoston, suorittaa käskyt ja rakentaa tietokannan uudelleen sellaisena kuin se oli.

Tuo MySQL-vedostiedosto

Ennen vedostiedoston tuontia tarvitset jo luodun tietokannan sekä kelvollisen käyttäjätunnuksen ja salasanan. Sinulla on myös oltava kaikki tietokannan käyttöoikeudet. Et tarvitse GRANT-lupaa, mutta on helpompi myöntää ne kaikki. Tutustu tietokannan käyttöoikeuksiin ennen kuin muutat tietokannan suojausrooleja. Voit tuoda tietosi uudelleen kirjautumalla MySQL-palvelimelle mysql Tilaus. Tyyppi käyttää [database name] kehotteessa ja korvaa tietokannan nimi. Tulla sisään lähde [filename], ja korvaa aiemmin ottamasi vedostiedoston nimi. Kun olet valmis, näkyviin tulee luettelo viesteistä, jotka ilmoittavat, että SQL-käskyjä suoritetaan. Pidä silmällä virheitä, mutta jos sinulla on oikeat käyttöoikeudet, sinun pitäisi olla kunnossa.

Tuo mysqldump-tiedosto uuteen tietokantaan

Kun prosessi on valmis, sinulla on alkuperäisen tietokannan kopio. Varmista tietokantojen vastaavuus tekemällä toinen vedos ja vertaamalla kahta lähtöä. Käytä tekstieditoria tai erityistä erotustyökalua kahden tiedoston vertailuun.

Vertaa kahden tietokannan vedostiedostoja

Näiden tiedostojen välillä on kaksi eroa, jotka näkyvät punaisilla viivoilla oikeanpuoleisen vierityspalkin ylä- ja alareunassa. Ensimmäinen on tietokannan nimen sisältävä rivi, joka on erilainen, koska tiedostot on nimetty uudelleen. Toinen on vedostiedoston aikaleima. Tämä on erilainen, koska toinen tietokanta luotiin uudelleen ensimmäisen jälkeen. Muuten tiedostot ovat täsmälleen samat, eli myös ne luoneet tietokannat ovat.

FAQ

  • Mysqldump-virheen ratkaiseminen: Pääsy estetty käytettäessä lukitustaulukoita?

    Pyydä tietokannan järjestelmänvalvojaa myöntämään sinulle LOCK-oikeus. Jos tämä ei korjaa ongelmaa, yritä suorittaa sama mysqldump-komento suorittamalla — yksittäinen kauppa lippu, kuten [$ mysqldump –single-transaction] [-u user] [-p DBNAME ] > backup.sql.

  • Voitko käyttää «where» -lausetta mysqldumpin kanssa?

    Käytä WHERE-lausetta luodessasi varmuuskopion, joka sisältää vain tietyn ehdon täyttävät rivit. Jos esimerkiksi haluat vedota tiedot vain riveistä, joiden id-sarake on suurempi kuin 100, kirjoita «mysqldump my_db_name my_table_name –where=»id > 100″ > my_backup.sql».

Por Markus