MySQL-varmuuskopiointi- ja palautuskomennot tietokannan hallintaa varten
Tässä artikkelissa on useita käytännön esimerkkejä siitä, miten MySQL-tietokannoista voidaan tehdä erilaisia varmuuskopiointitoimia käyttämällä mysqldump-komentoa, ja näemme myös, kuinka ne voidaan palauttaa mysql- ja mysqlimport-komentojen avulla Linuxissa.
mysqldump on komentorivin asiakasohjelma, jota käytetään paikallisen tai etäisen MySQL-tietokannan tai tietokantojen kokoelman varmuuskopiointia varten yhdeksi tasaiseksi tiedostoksi.
Oletetaan, että sinulla on jo MySQL asennettu Linux-järjestelmään järjestelmänvalvojan oikeuksilla, ja oletamme, että sinulla on jo pieni määrä tietoa MySQL: stä. Jos sinulla ei ole MySQL: ää asennettuna tai sinulla ei ole altistumista MySQL: lle, lue alla olevat artikkelit.
- Asenna MySQL Server palvelimeen RHEL/CentOS 6-5, Fedora 17-12
- 20 MySQL-komentoa tietokannan hallintaan
Kuinka varmuuskopioida MySQL-tietokanta?
Jos haluat ottaa varmuuskopion MySQL-tietokannasta tai tietokannoista, tietokannan on oltava tietokantapalvelimessa ja sinulla on oltava siihen pääsy. Komennon muoto olisi.
# mysqldump -u [username] –p[password] [database_name] > [dump_file.sql]
Mainitun komennon parametrit seuraavasti.
- [käyttäjänimi]: kelvollinen MySQL-käyttäjänimi.
- [salasana]: kelvollinen MySQL-salasana käyttäjälle.
- [tietokannan_nimi]: kelvollinen tietokannan nimi, jonka haluat varmuuskopioida.
- [dump_file.sql]: Varmuuskopioitava dump-tiedosto, jonka haluat luoda.
Ota varmuuskopio yksittäisestä tietokannasta käyttämällä komentoa seuraavasti. Komento kaataa tietokanta [rsyslog] -rakenteen, jossa on tiedot, yhteen dump-tiedostoon nimeltä rsyslog.sql.
# mysqldump -u root -ptecmint rsyslog > rsyslog.sql
Jos haluat ottaa varmuuskopion useista tietokannoista, suorita seuraava komento. Seuraava komentokomento vie varmuuskopion tietokantojen [rsyslog, syslog] rakenteesta ja tiedoista yhteen tiedostoon nimeltä rsyslog_syslog.sql.
# mysqldump -u root -ptecmint --databases rsyslog syslog > rsyslog_syslog.sql
Jos haluat ottaa varmuuskopion kaikista tietokannoista, käytä seuraavaa komentoa vaihtoehdolla –all-database. Seuraava komento vie kaikkien tietokantojen varmuuskopion niiden rakenteella ja tiedoilla tiedostoon nimeltä all-databaseases.sql.
# mysqldump -u root -ptecmint --all-databases > all-databases.sql
Jos haluat vain varmuuskopion tietokantarakenteesta ilman tietoja, käytä komentossa -no-data -vaihtoehtoa. Alla oleva komento vie tietokannan [rsyslog] rakenne tiedostoksi rsyslog_structure.sql.
# mysqldump -u root -ptecmint -–no-data rsyslog > rsyslog_structure.sql
Jos haluat varmuuskopioida tietokannan tiedot vain ilman rakennetta, käytä komentoa -no-create-info -vaihtoehtoa. Tämä komento vie tietokannan [rsyslog] tiedot tiedostoon rsyslog_data.sql.
# mysqldump -u root -ptecmint --no-create-db --no-create-info rsyslog > rsyslog_data.sql
Alla olevalla komennolla voit ottaa varmuuskopion yhdestä taulukosta tai tietyistä tietokannan taulukoista. Esimerkiksi seuraava komento ottaa varmuuskopion vain wp_posts-taulukosta tietokannan wordpressistä.
# mysqldump -u root -ptecmint wordpress wp_posts > wordpress_posts.sql
Jos haluat ottaa varmuuskopion useista tai tietyistä taulukoista tietokannasta, erota kukin taulukko välilyönnillä.
# mysqldump -u root -ptecmint wordpress wp_posts wp_comments > wordpress_posts_comments.sql
Seuraava komento vie etäpalvelimen [172.16.25.126] tietokannan [galleria] varmuuskopion paikalliselle palvelimelle.
# mysqldump -h 172.16.25.126 -u root -ptecmint gallery > gallery.sql
Kuinka palauttaa MySQL-tietokanta?
Yllä olevassa opetusohjelmassa olemme nähneet, kuinka varmuuskopioida vain tietokannat, taulukot, rakenteet ja tiedot, nyt näemme, kuinka ne voidaan palauttaa seuraavassa muodossa.
# # mysql -u [username] –p[password] [database_name] < [dump_file.sql]
Tietokannan palauttamiseksi sinun on luotava tyhjä tietokanta kohdekoneeseen ja palautettava tietokanta msyql-komennolla. Esimerkiksi seuraava komento palauttaa rsyslog.sql-tiedoston rsyslog-tietokantaan.
# mysql -u root -ptecmint rsyslog < rsyslog.sql
Jos haluat palauttaa tietokannan, joka on jo olemassa kohdekoneessa, sinun on käytettävä mysqlimport-komentoa.
# mysqlimport -u root -ptecmint rsyslog < rsyslog.sql
Samalla tavalla voit myös palauttaa tietokantataulukot, rakenteet ja tiedot. Jos pidit tästä artikkelista, jaa se ystävillesi.