日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

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

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

一、前言

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

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

  • 使用mysqldump程序
  • 使用二進制日志
  • 在本文中,會解釋如何使用mysqldump生成MySQL數據庫的備份。

    二、使用mysqldump程序生成備份

    Mysqldump是一個命令行程序,用于生成MySQL數據庫的備份。他生成的文件可以用于重新創建數據庫對象和數據的SQL語句。

    mysqldump?-u?[用戶名]?–p?[密碼]?[選項]?[數據庫名]?[表名]>?[dumpfilename.sql]

    參數如下:

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

    1.生成單個數據庫的備份

    要生成單個數據庫的備份,可以運行以下命令,這個命令將test數據庫中的表結構和數據都保存到testdb.sql文件中。

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

    運行此命令時,會提示您輸入密碼,輸入密碼后,將在對應路徑生成sql文件,內容如下。

    2.生成多個數據庫或所有數據庫的備份

    如果要生成多個數據庫的備份,必須在mysqldump命令中添加--databases選項,以下命令將生成具有結構和數據的"test"和"db_score"數據庫的備份。

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

    要生成整個數據庫的備份,則需要加--all-databases選項。

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

    3.生成數據庫結構的備份

    如果僅要生成數據庫結構的備份,則必須在mysqldump命令中加入–no-data選項,以下命令用于生成test數據庫的數據庫結構的備份。

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

    4.生成特定表的備份

    如果僅要生成數據庫中某個表的備份,則必須在mysqldump命令中指明表名稱,以下命令用于生成test數據庫中tb_books表的結構和數據備份。

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

    5.僅生成數據庫數據備份

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

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

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

    三、恢復數據

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

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

    ##?刪除test數據庫
    drop?database?test;

    ##?創建數據庫
    create?database?test;

    ##?選擇數據庫
    use?test;

    ##?恢復
    source?/home/HouXinLin/test/testdb.sql

    四、免密碼導出

    從上面可以發現在使用mysqldump的時候每次都需要輸入密碼,當然這是可以避免的

    touch?~/.my.cnf

    vim??~/.my.cnf?

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

    [mysqldump]
    user=root
    password=xxxxx

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

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

  • MYSQL_HOME是一個環境變量,其中包含服務器特定my.cnf文件所在目錄的路徑。

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

  • 五、定時備份

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

    #?/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分鐘后,在對應的目錄就會生成testdb.sql文件。

    總結

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

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。