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.

  1. Asenna MySQL Server palvelimeen RHEL/CentOS 6-5, Fedora 17-12
  2. 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.

  1. [käyttäjänimi]: kelvollinen MySQL-käyttäjänimi.
  2. [salasana]: kelvollinen MySQL-salasana käyttäjälle.
  3. [tietokannan_nimi]: kelvollinen tietokannan nimi, jonka haluat varmuuskopioida.
  4. [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.