Yksi johtavista vapaasti saatavilla olevista tietokannoista MySQL on suosittu valinta monille verkkosovelluksille. Koska sovelluksesi on alttiina Internetiin, se on alttiina haitallisille hyökkäyksille. Jos palvelimesi on vaarantunut, sinun on parhaimmillaan asennettava 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ökalu auttaa sinua sekä palvelimen vaarantumis- että siirtotilanteessa. Sen perustoiminto on ottaa MySQL-tietokanta ja tyhjentää se tekstitiedostona. Mutta ei mikään tekstitiedosto; tiedosto on joukko SQL-lauseita. Nämä käskyt, kun ne suoritetaan, rekonstruoivat tietokannan täsmälleen siihen tilaan, jossa se oli vedosten suorittamisen yhteydessä.
Käytä mysqldumpia tietokannan vientien luomiseen varmuuskopioina tai siirtäessäsi tietokantaa uuteen isäntään. Kummassakin tapauksessa tekstitiedosto tuodaan takaisin MySQL-tietokantapalvelimeen. Se suorittaa kaikki tiedoston SQL-käskyt, mikä palauttaa 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-dokumenteissa luetellaan muita menetelmiä varmuuskopiointiin, mutta näillä on haittoja:
- Tietokannan pikakopiointi MySQL Enterprisesta on loistava tapa tehdä nämä varmuuskopiot – jos Enterprise-hintalappu ei haittaa.
- Tietokannan tietohakemistojen kopioiminen voi olla hankalaa siirryttäessä käyttöjärjestelmien välillä, koska kohteet ovat erilaisia.
- Vieminen rajattuun tekstitiedostoon antaa 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 Tool
Jos kyseessä on Windows, katso ohjeet MySQL:n asentamiseksi Windows 7:ään (asennusprosessi on sama Windows 10:ssä). Katso macOS:ssä ohjeet MySQL:n asentamiseen 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
Asennuksen jälkeen saat täyden varmuuskopion tietokannasta mysqldumpilla.
mysqldump -h [tietokantapalvelimen nimi tai IP] -u [tietokantakäyttäjän nimi] -p [tietokannan nimi] > db_backup.sql
Tässä on kuvaus tässä komennossa käytetyistä lipuista:
- - h: Tämä lippu on tietokannan isäntä. Se voi olla täydellinen isäntänimi (esimerkiksi myhost.domain.com) tai IP-osoite. Jätä tämä tyhjäksi, jos suoritat komennon samassa isännässä kuin MySQL-palvelin.
- - u: Käyttäjätunnuksesi.
- - p: Jos suojasit MySQL-asennuksen oikein, tarvitset salasanan yhteyden muodostamiseen. Tämä lippu ilman argumenttia pyytää salasanaa, kun suoritat komennon. Joskus on hyödyllistä antaa salasana suoraan tämän lipun argumenttina, esimerkiksi varmuuskopiossa. Mutta kehotteessa sinun ei pitäisi, koska jos joku pääsisi tietokoneellesi, hän voi saada tämän salasanan komentohistoriaan.
- > db_backup.sql: Tämä osa käskee mysqldumpin ohjaamaan tulostensa tiedostoon. Normaalisti komento tulostaa kaiken konsoliin, mikä tarkoittaa, että näet useita SQL-lauseita näytöllä. Symboli > ohjaa tulosteen 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-vedostiedoston uudelleen, komento toimii tiedoston läpi, suorittaa käskyt ja rakentaa tietokannan uudelleen sellaiseksi kuin se oli.
Tuo MySQL-vedostiedosto
Ennen kuin tuot vedostiedoston, tarvitset jo luodun tietokannan ja sen voimassa olevan käyttäjätunnuksen ja salasanan. Sinulla tulee myös olla kaikki tietokannan käyttöoikeudet. Et tarvitse GRANT-lupaa, mutta on helpompi myöntää ne kaikki.
Lisätietoja tietokannan käyttöoikeuksista ennen kuin muutat tietokannan suojausrooleja.
Jos haluat tuoda tietosi uudelleen, kirjaudu MySQL-palvelimelle komennolla mysql. Kirjoita use [tietokannan nimi] kehotteeseen ja korvaa tietokannan nimi. Kirjoita source [tiedostonimi] ja korvaa aiemmin ottamasi vedostiedoston nimi.
Kun olet valmis, näkyviin tulee luettelo viesteistä, joissa todetaan, että SQL-käskyjä suoritetaan. Pidä silmällä virheitä, mutta jos sinulla on oikeat käyttöoikeudet, sinun pitäisi olla kunnossa.
Kun prosessi on valmis, sinulla on alkuperäisen tietokannan kopio. Varmista tietokantojen samank altaisuus suorittamalla toinen vedos ja vertaamalla kahta lähtöä. Käytä tekstieditoria tai erillistä erotustyökalua kahden tiedoston vertailuun.
Näiden tiedostojen välillä on kaksi eroa, joita edustavat punaiset viivat oikeanpuoleisen vierityspalkin ylä- ja alareunassa. Ensimmäinen on rivi, joka sisältää tietokannan nimen, ja tämä on erilainen, koska tiedostot nimettiin eri tavalla. Toinen on vedostiedoston aikaleima. Tämä on erilainen, koska toinen tietokanta luotiin uudelleen ensimmäisen jälkeen. Muuten tiedostot ovat täsmälleen samat, mikä tarkoittaa, että myös ne luoneet tietokannat ovat.
UKK
Miten korjaat mysqldump-virheen: Pääsy estetty käytettäessä lukitustaulukoita?
Pyydä tietokannan pääkäyttäjää myöntämään sinulle LOCK-oikeudet. Jos tämä ei ratkaise ongelmaa, yritä suorittaa samaa mysqldump-komentoa lisäämällä - -single-transaction lippu, kuten [ $ mysqldump --single-transaction] [-u käyttäjä] [-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 kopioida tiedot vain riveiltä, joiden id-sarake on suurempi kuin 100, kirjoita "mysqldump my_db_name my_table_name --where="id > 100" > my_backup.sql.