日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

mysql的每隔1分钟定时_深入研究MySQL(四)、备份与恢复

發(fā)布時(shí)間:2024/9/27 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql的每隔1分钟定时_深入研究MySQL(四)、备份与恢复 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、前言

知道備份的重要性嗎?沒經(jīng)歷過的可能永遠(yuǎn)不知道,我們在重裝系統(tǒng)、手機(jī)升級(jí)等時(shí)候,備份一下必要數(shù)據(jù)總是有好處的,指不定哪個(gè)神操作導(dǎo)致磁盤數(shù)據(jù)丟失,前些日子刪庫跑路被判刑的那位老哥,如果公司有備份的話,也不至于損失幾個(gè)億(聽說是讓綠了),所以本章來學(xué)習(xí)一下MySQL的備份與恢復(fù),如果要定期備份的話,可以寫個(gè)腳本定時(shí)執(zhí)行,省去人來完成這重復(fù)的工作。

我們可以使用以下任何一種方法來生成MySQL數(shù)據(jù)庫的備份:

  • 使用mysqldump程序
  • 使用二進(jìn)制日志
  • 在本文中,會(huì)解釋如何使用mysqldump生成MySQL數(shù)據(jù)庫的備份。

    二、使用mysqldump程序生成備份

    Mysqldump是一個(gè)命令行程序,用于生成MySQL數(shù)據(jù)庫的備份。他生成的文件可以用于重新創(chuàng)建數(shù)據(jù)庫對象和數(shù)據(jù)的SQL語句。

    mysqldump?-u?[用戶名]?–p?[密碼]?[選項(xiàng)]?[數(shù)據(jù)庫名]?[表名]>?[dumpfilename.sql]

    參數(shù)如下:

    -u [用戶名]:連接到MySQL服務(wù)器的用戶名。
    -p [密碼]:MySQL用戶的密碼
    [option]:用于自定義備份的配置選項(xiàng)
    [數(shù)據(jù)庫名稱]:要備份的數(shù)據(jù)庫的名稱
    [表名]:這是一個(gè)可選參數(shù)。如果要獲取備份特定表,則可以在命令中指定名稱
    [dumpfilename.sql]:備份文件的路徑和名稱。

    1.生成單個(gè)數(shù)據(jù)庫的備份

    要生成單個(gè)數(shù)據(jù)庫的備份,可以運(yùn)行以下命令,這個(gè)命令將test數(shù)據(jù)庫中的表結(jié)構(gòu)和數(shù)據(jù)都保存到testdb.sql文件中。

    mysqldump?-u?root?-p?test?>/home/HouXinLin/test/testdb.sql

    運(yùn)行此命令時(shí),會(huì)提示您輸入密碼,輸入密碼后,將在對應(yīng)路徑生成sql文件,內(nèi)容如下。

    2.生成多個(gè)數(shù)據(jù)庫或所有數(shù)據(jù)庫的備份

    如果要生成多個(gè)數(shù)據(jù)庫的備份,必須在mysqldump命令中添加--databases選項(xiàng),以下命令將生成具有結(jié)構(gòu)和數(shù)據(jù)的"test"和"db_score"數(shù)據(jù)庫的備份。

    mysqldump?-u?root?-p?--databases?test?db_score?test?>/home/HouXinLin/test/test_tbscoredb.sql

    要生成整個(gè)數(shù)據(jù)庫的備份,則需要加--all-databases選項(xiàng)。

    mysqldump?-u?root?-p?--all-databases??>/home/HouXinLin/test/test_tbscoredb.sql

    3.生成數(shù)據(jù)庫結(jié)構(gòu)的備份

    如果僅要生成數(shù)據(jù)庫結(jié)構(gòu)的備份,則必須在mysqldump命令中加入–no-data選項(xiàng),以下命令用于生成test數(shù)據(jù)庫的數(shù)據(jù)庫結(jié)構(gòu)的備份。

    mysqldump?-u?root?-p?--no-data?test?>/home/HouXinLin/test/testdb.sql

    4.生成特定表的備份

    如果僅要生成數(shù)據(jù)庫中某個(gè)表的備份,則必須在mysqldump命令中指明表名稱,以下命令用于生成test數(shù)據(jù)庫中tb_books表的結(jié)構(gòu)和數(shù)據(jù)備份。

    mysqldump?-u?root?-p??test?tb_books?>/home/HouXinLin/test/testdb.sql

    5.僅生成數(shù)據(jù)庫數(shù)據(jù)備份

    如果要生成僅數(shù)據(jù)庫數(shù)據(jù)的備份(沒有創(chuàng)建表的語句),則必須在mysqldump命令中加入–no-create-info 選項(xiàng)。以下命令生成test數(shù)據(jù)庫的數(shù)據(jù)備份。

    mysqldump?-u?root?-p???--no-create-info?test?>/home/HouXinLin/test/testdb.sql

    生成的sql中,可以看到他只有insert語句,在插入的時(shí)候,還進(jìn)行了鎖表。

    三、恢復(fù)數(shù)據(jù)

    恢復(fù)的話比較簡單,通過source程序傳入sql文件即可,以下是完整的備份、刪庫,恢復(fù)命令。

    ##?備份
    mysqldump?-u?root?-p?test?>/home/HouXinLin/test/testdb.sql

    ##?刪除test數(shù)據(jù)庫
    drop?database?test;

    ##?創(chuàng)建數(shù)據(jù)庫
    create?database?test;

    ##?選擇數(shù)據(jù)庫
    use?test;

    ##?恢復(fù)
    source?/home/HouXinLin/test/testdb.sql

    四、免密碼導(dǎo)出

    從上面可以發(fā)現(xiàn)在使用mysqldump的時(shí)候每次都需要輸入密碼,當(dāng)然這是可以避免的

    touch?~/.my.cnf

    vim??~/.my.cnf?

    然后編輯其內(nèi)容(編輯完不需要重啟),最后在使用mysqldump中一定要取消-p參數(shù)。

    [mysqldump]
    user=root
    password=xxxxx

    其實(shí)對于這類更改方式,在我心中必須要看到某個(gè)文件對這個(gè)軟件有什么影響的官方文章說明,才會(huì)安心,即使知道他確實(shí)會(huì)對軟件有影響,在沒看到官方對這個(gè)解釋前,心中的這石頭總是放不下的,所以,我在官網(wǎng)中找到了對一些文件的解釋。

    文件名目的
    /etc/my.cnf全局選項(xiàng)
    /etc/mysql/my.cnf全局選項(xiàng)
    SYSCONFDIR/my.cnf全局選項(xiàng)
    $MYSQL_HOME/my.cnf服務(wù)器特定的選項(xiàng)(僅服務(wù)器)
    ~/.my.cnf用戶特定的選項(xiàng)
    ~/.mylogin.cnf用戶特定的登錄路徑
    DATADIR/mysqld-auto.cnf系統(tǒng)變量使用 SET PERSIST或 SE PERSIST_ONLY保留(僅服務(wù)器)
  • SYSCONFDIR表示在構(gòu)建MySQL時(shí)SYSCONFDIR 使用CMake選項(xiàng)指定的目錄。

  • MYSQL_HOME是一個(gè)環(huán)境變量,其中包含服務(wù)器特定my.cnf文件所在目錄的路徑。

  • DATADIR表示MySQL數(shù)據(jù)目錄。用于查找 mysqld-auto.cnf,其默認(rèn)值是編譯MySQL時(shí)內(nèi)置的數(shù)據(jù)目錄位置,但是可以通過--datadir 指定為在處理之前mysqld-auto.cnf處理的選項(xiàng)文件或命令行選項(xiàng)來更改。

  • 五、定時(shí)備份

    Linux自帶一個(gè)定時(shí)任務(wù)系統(tǒng),可以通過crontab -e進(jìn)行添加,也可以修改/etc/crontab文件,另外這個(gè)服務(wù)的最低偵是分鐘,也就是無法做到每隔x秒后去執(zhí)行任務(wù),這個(gè)服務(wù)會(huì)每分鐘去讀取一次 /etc/crontab 和 /var/spool/cron 里面的數(shù)據(jù),在編輯/etc/crontab文件后,只需靜靜等待即可,下面以/etc/crontab為例子,在文件最后加入每隔1秒執(zhí)行一次腳本,這需要對cron表達(dá)式有所了解。

    #?/etc/crontab:?system-wide?crontab
    #?Unlike?any?other?crontab?you?don't?have?to?run?the?`crontab'
    #?command?to?install?the?new?version?when?you?edit?this?file
    #?and?files?in?/etc/cron.d.?These?files?also?have?username?fields,
    #?that?none?of?the?other?crontabs?do.

    SHELL=/bin/sh
    PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

    #?m?h?dom?mon?dow?user?command
    17?*?*?*?*?root????cd?/?&&?run-parts?--report?/etc/cron.hourly
    25?6?*?*?*?root?test?-x?/usr/sbin/anacron?||?(?cd?/?&&?run-parts?--report?/etc/cron.daily?)
    47?6?*?*?7?root?test?-x?/usr/sbin/anacron?||?(?cd?/?&&?run-parts?--report?/etc/cron.weekly?)
    52?6?1?*?*?root?test?-x?/usr/sbin/anacron?||?(?cd?/?&&?run-parts?--report?/etc/cron.monthly?)
    #

    */1?*?*?*?*?root??/home/HouXinLin/test/dump.sh

    dump.sh

    #!/bin/bash
    mysqldump?-u?root?test?>/home/HouXinLin/test/testdb.sql

    靜靜等待1分鐘后,在對應(yīng)的目錄就會(huì)生成testdb.sql文件。

    總結(jié)

    以上是生活随笔為你收集整理的mysql的每隔1分钟定时_深入研究MySQL(四)、备份与恢复的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。