Android

Paano i-back up at ibalik ang mga database ng mysql gamit ang mysqldump

How to Backup and Restore MySQL/MariaDB database using mysqldump

How to Backup and Restore MySQL/MariaDB database using mysqldump

Talaan ng mga Nilalaman:

Anonim

Ipinapaliwanag ng tutorial na ito kung paano i-backup at maibalik ang mga database ng MySQL o MariaDB mula sa linya ng utos gamit ang mysqldump utility.

Ang mga backup file na nilikha ng mysqldump utility ay karaniwang isang hanay ng mga pahayag ng SQL na maaaring magamit upang muling likhain ang orihinal na database. Ang utos ng mysqldump ay maaari ring makabuo ng mga file sa format na CSV at XML.

Maaari mo ring gamitin ang utility mysqldump upang ilipat ang iyong MySQL database sa isa pang MySQL server.

Mysqldump Command Syntax

Bago magpunta sa kung paano gamitin ang utos ng mysqldump, magsimula tayo sa pamamagitan ng pagsusuri sa pangunahing syntax.

Ang mysqldump utility expression ay kumuha ng mga sumusunod na form:

mysqldump > file.sql

  • options - Ang mysqldump options file.sql - Ang dump (backup) file

Upang magamit ang utos ng mysqldump, dapat ma-access at tumatakbo ang MySQL server.

I-backup ang isang solong Database ng MySQL

Ang pinaka-karaniwang kaso ng paggamit ng mysqldump tool ay ang pag-backup ng isang solong database.

Halimbawa, upang lumikha ng isang backup ng database na pinangalanang database_name gamit ang root gumagamit at i-save ito sa isang file na pinangalanang database_name.sql nais mong patakbuhin ang sumusunod na utos:

mysqldump -u root -p database_name > database_name.sql

Sasabihan ka upang ipasok ang root password. Matapos ang matagumpay na pagpapatotoo, magsisimula ang proseso ng pagtapon. Depende sa laki ng database, ang proseso ay maaaring tumagal ng ilang oras.

mysqldump database_name > database_name.sql

I-backup ang Maramihang Mga Database ng MySQL

Upang i-backup ang maramihang mga database ng MySQL na may isang utos na kailangan mong gamitin ang --database pagpipilian na sinusundan ng listahan ng mga database na nais mong i-backup. Ang bawat pangalan ng database ay dapat na paghiwalayin sa espasyo.

mysqldump -u root -p --databases database_name_a database_name_b > databases_a_b.sql

Ang utos sa itaas ay lilikha ng isang dump file na naglalaman ng parehong mga database.

I-backup ang Lahat ng Mga MySQL Databases

Gamitin ang --all-databases pagpipilian upang i-back up ang lahat ng mga database ng MySQL:

mysqldump -u root -p --all-databases > all_databases.sql

Parehas tulad ng nakaraang halimbawa ang utos sa itaas ay lilikha ng isang solong dump file na naglalaman ng lahat ng mga database.

I-backup ang lahat ng mga database ng MySQL upang paghiwalayin ang mga file

Ang mysqldump utility ay hindi nagbibigay ng isang pagpipilian upang i-backup ang lahat ng mga database upang paghiwalayin ang mga file ngunit madali naming makamit iyon sa isang simpleng bash FOR loop:

for DB in $(mysql -e 'show databases' -s --skip-column-names); do mysqldump $DB > "$DB.sql"; done

Ang utos sa itaas ay lilikha ng isang hiwalay na dump file para sa bawat database gamit ang database name bilang ang filename.

Lumikha ng isang Compressed MySQL Database Backup

Kung ang laki ng database ay napakalaking magandang ideya na i-compress ang output. Upang gawin iyon ay i-pipe lamang ang output sa utility ng gzip , at i-redirect ito sa isang file tulad ng ipinakita sa ibaba:

mysqldump database_name | gzip > database_name.sql.gz

Lumikha ng isang Backup gamit ang Timestamp

mysqldump database_name > database_name-$(date +%Y%m%d).sql

Ang utos sa itaas ay lilikha ng isang file na may sumusunod na format database_name-20180617.sql

Pagpapanumbalik ng isang MySQL dump

Maaari mong ibalik ang isang MySQL dump gamit ang mysql tool. Ang command general syntax ay ang mga sumusunod:

mysqld database_name < file.sql

Sa karamihan ng mga kaso kakailanganin mong lumikha ng isang database upang mai-import sa. Kung mayroon nang database, kailangan mo munang tanggalin ito.

Sa sumusunod na halimbawa ang unang utos ay lilikha ng isang database na pinangalanang database_name at pagkatapos ay i-import nito ang dump database_name.sql dito:

mysql -u root -p -e "create database database_name"; mysql -u root -p database_name < database_name.sql

Ibalik ang isang solong Database MySQL mula sa isang Buong MySQL Dump

mysql --one-database database_name < all_databases.sql

I-export at Mag-import ng isang MySQL Database sa Isang Utos

Sa halip na lumikha ng isang dump file mula sa isang database at pagkatapos ay i-import ang backup sa isa pang MySQL database maaari mong gamitin ang sumusunod na one-liner:

mysqldump -u root -p database_name | mysql -h remote_host -u root -p remote_database_name

Ang utos sa itaas ay i-pipe ang output sa isang mysql client sa remote host at i-import ito sa isang database na pinangalanan ang remote_database_name . Bago patakbuhin ang utos, tiyaking mayroon nang database sa remote server.

Pag-automate ang mga backup sa Cron

Ang pag-automate ng proseso ng pag-back up ng mga database ay kasing simple ng paglikha ng isang cron job kung ano ang tatakbo sa utos ng mysqldump sa tinukoy na oras.

Upang mag-set up ng mga awtomatikong backup ng isang database ng MySQL gamit ang cronjob, sundin ang mga hakbang sa ibaba:

  1. Lumikha ng isang file na pinangalanan .my.cnf sa direktoryo ng bahay ng iyong gumagamit:

    sudo nano ~/.my.cnf

    Kopyahin at idikit ang sumusunod na teksto sa file na.my.cnf.

    user = dbuser password = dbpasswd

    Huwag kalimutan na palitan ang dbuser at dbpasswd ang database ng gumagamit at password ng gumagamit.

    Limitahan ang mga pahintulot ng file ng mga kredensyal upang lamang ang iyong gumagamit ay may access dito:

    chmod 600 ~/.my.cnf

    Lumikha ng isang direktoryo upang maiimbak ang mga backup:

    mkdir ~/db_backups

    Buksan ang iyong crontab file ng gumagamit:

    crontab -e

    Idagdag ang sumusunod na trabaho ng cron na lilikha ng isang backup ng isang database ng mydb araw-araw sa 3:00:

    0 3 * * * /usr/bin/mysqldump -u dbuser mydb > /home/username/db_backups/mydb-$(date +%Y%m%d).sql

    Huwag kalimutang palitan ang username sa iyong aktwal na pangalan ng gumagamit.

Maaari ka ring lumikha ng isa pang cronjob upang tanggalin ang anumang mga backup na mas matanda kaysa sa 30 araw:

find /path/to/backups -type f -name "*.sql" -mtime +30 -delete

Siyempre, kailangan mong ayusin ang utos ayon sa iyong lokasyon ng backup at mga pangalan ng file. Upang malaman ang higit pa tungkol sa hanapin ng utos na suriin ang aming Paano Maghanap ng mga File sa Linux Gamit ang gabay ng Command Line.

Konklusyon

Sinasaklaw lamang ng tutorial na ito ang mga pangunahing kaalaman, ngunit dapat itong maging isang magandang simula para sa sinumang nais malaman kung paano lumikha at ibalik ang mga database ng MySQL mula sa linya ng utos gamit ang mysqldump utility.

Maaari mo ring suriin ang tutorial tungkol sa kung paano i-reset ang isang password ng MySQL root kung nakalimutan mo ito.

mysql mariadb backup mysqldump