1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        常用的MySQL備份/還原 的方法

        共 5642字,需瀏覽 12分鐘

         ·

        2024-06-16 18:19

        mysql備份數(shù)據(jù)庫(kù)

        1. mysql備份單個(gè)數(shù)據(jù)庫(kù)

        #mysql備份某個(gè)庫(kù)格式:
        mysqldump -h主機(jī)名 -P端口 -u用戶名 -p"密碼" --database 數(shù)據(jù)庫(kù)名 > 文件名.sql

        #實(shí)例:mysql備份某個(gè)庫(kù):
        mysqldump -h10.*.*.9 -P3306 -uroot -p"密碼" --single-transaction --master-data=2 --set-gtid-purged=OFF --database -B db_mystorage > mysqldump_db_mystorage_`date +%Y%m%d-%H%M`.sql
        1. mysql備份多個(gè)數(shù)據(jù)庫(kù)

        #mysql備份某個(gè)庫(kù)格式:
        mysqldump -h主機(jī)名 -P端口 -u用戶名 -p"密碼" --database 數(shù)據(jù)庫(kù)名1 數(shù)據(jù)庫(kù)名2 數(shù)據(jù)庫(kù)名3 > 文件名.sql

        #實(shí)例:mysql備份某個(gè)庫(kù):
        mysqldump -h10.*.*.9 -P3306 -uroot -p"密碼" --single-transaction --master-data=2 --set-gtid-purged=OFF --database -B db_mystorage db_myblogs db_myOA > mysqldump_db_mystorage_db_myblogs_db_myOA_`date +%Y%m%d-%H%M`.sql
        1. mysql備份所有的庫(kù)

        #mysql備份所有的庫(kù)格式:
        mysqldump -h主機(jī)名 -P端口 -u用戶名 -p"密碼" --all-databases > 文件名.sql

        #實(shí)例:mysql備份所有的庫(kù):
        mysqldump -h10.*.*.9 -P3306 -u用戶名 -p"密碼" --single-transaction --master-data=2 --set-gtid-purged=OFF --all-databases > mysqldump_all_databases_`date +%Y%m%d-%H%M`.sql

        注意:如上命令 -A 或者 --all-databases 是備份該用戶名擁有的全部數(shù)據(jù)庫(kù)。

        1. mysql備份特定表

        #mysql備份某個(gè)庫(kù)格式:
        mysqldump -h主機(jī)名 -P端口 -u用戶名 -p"密碼" 數(shù)據(jù)庫(kù)名 表名 > 文件名.sql

        #實(shí)例:備份db_plus_core庫(kù)中的tb_doc_permission表
        mysqldump -h10.*.*.9 -P3306 -uroot -p"密碼" --single-transaction --master-data=2 --set-gtid-purged=OFF db_plus_core tb_doc_permission > mysqldump_tb_doc_permission_`date +%Y%m%d-%H%M`.sql
        1. mysql備份特定多個(gè)表

        #mysql備份某個(gè)庫(kù)格式:
        mysqldump -h主機(jī)名 -P端口 -u用戶名 -p"密碼" 數(shù)據(jù)庫(kù)名 表名1 表名2 > 文件名.sql

        #實(shí)例:備份db_plus_core庫(kù)中的tb_doc_permission表
        mysqldump -h10.*.*.9 -P3306 -uroot -p"密碼" --single-transaction --master-data=2 --set-gtid-purged=OFF db_plus_core tb_1 tb_2 > mysqldump_tb_1_tb_2_`date +%Y%m%d-%H%M`.sql

        備份命令的 -B 參數(shù)

        執(zhí)行備份語句的時(shí)候,其中可以加上很多的參數(shù),用來添加一些備份的時(shí)候的特殊要求的,其中有一個(gè)-B參數(shù)。執(zhí)行備份語句時(shí),如果加上了-B參數(shù),那么將來再執(zhí)行數(shù)據(jù)還原的時(shí)候,就不需要自己到數(shù)據(jù)庫(kù)里面去先創(chuàng)建一個(gè)目標(biāo)庫(kù)了,并且執(zhí)行數(shù)據(jù)還原語句的時(shí)候也不需要指定目標(biāo)庫(kù)了。如果沒有加-B參數(shù),就需要自行到數(shù)據(jù)庫(kù)中先創(chuàng)建一個(gè)目標(biāo)庫(kù),并且執(zhí)行恢復(fù)語句時(shí)要指定將數(shù)據(jù)恢復(fù)到目標(biāo)庫(kù)。

        原因是-B參數(shù)導(dǎo)出的文件中自帶創(chuàng)建數(shù)據(jù)庫(kù)和連接數(shù)據(jù)庫(kù)的功能:(使用-B參數(shù)備份出來的內(nèi)容自帶create database 庫(kù)名和use 庫(kù)名的功能)。

        備份命令的 | gzip 管道符

        【壓縮備份】:實(shí)際生產(chǎn)上導(dǎo)出的數(shù)據(jù)有可能比較大,不好備份到遠(yuǎn)程,這時(shí)候就需要進(jìn)行壓縮。
        mysql壓縮備份:

        #mysql壓縮備份格式:
        mysqldump -h主機(jī)名 -P端口 -u用戶名 -p"密碼" --database 數(shù)據(jù)庫(kù)名 | gzip > 文件名.sql.gz

        #實(shí)例一:mysql壓縮備份
        mysqldump -h10.*.*.9 -P3306 -uroot -p"密碼" --single-transaction --master-data=2 --set-gtid-purged=OFF --database db_plus_core | gzip > mysqldump_db_plus_core_`date +%Y%m%d-%H%M`.sql.gz

        #實(shí)例二:mysql壓縮備份全部數(shù)據(jù)庫(kù):
        mysqldump -h10.*.*.9 -P3306 -uroot -p"密碼" --single-transaction --master-data=2 --all-databases | gzip > mysqldump_alldatabases_`%Y%m%d-%H%M`.sql.gz

        #實(shí)例三:如果mysql開了GTID模式就要用這個(gè)命令
        mysqldump -h10.*.*.9 -P3306 -uroot -p"密碼" --single-transaction --master-data=2 --set-gtid-purged=OFF --all-databases | gzip > mysqldump_alldatabases_`%Y%m%d-%H%M`.sql.gz

        mysql備份數(shù)據(jù)帶出刪除數(shù)據(jù)庫(kù)或者表的sql備份

        備份時(shí),可以帶出刪除庫(kù)的參數(shù)--add-drop-database,帶出刪除表的參數(shù)--add-drop-table

        #格式:
        mysqldump -h主機(jī)名 -P端口 -u用戶名 -p"密碼" --add-drop-table --add-drop-database 數(shù)據(jù)庫(kù)名 > 文件名.sql
        #示例:
        mysqldump -h10.*.*.9 -P3306 -uroot -p"密碼" --add-drop-table --add-drop-database cmdb > /data/backup/mysqldump_cmdb_`%Y%m%d-%H%M`.sql

        僅備份數(shù)據(jù)庫(kù)結(jié)構(gòu),不包含數(shù)據(jù)

        有時(shí)候我們僅僅只想備份出環(huán)境,數(shù)據(jù)庫(kù)/表/字段結(jié)構(gòu),可以加命令參數(shù)--no-data

        #格式:
        mysqldump -h主機(jī)名 -P端口 -u用戶名 -p"密碼" --no-data 數(shù)據(jù)庫(kù)名1 數(shù)據(jù)庫(kù)名2 > 文件名.sql
        #示例:
        mysqldump -h10.*.*.9 -P3306 -uroot -p"密碼" --no-data db1 db2 > /data/backup/mysqldump_no_data_db1_db2_`%Y%m%d-%H%M`.sql

        mysqldump恢復(fù)數(shù)據(jù)備份

        #格式:
        mysqldump -h主機(jī)名 -P端口 -u用戶名 -p"密碼" --no-data 數(shù)據(jù)庫(kù)名1 數(shù)據(jù)庫(kù)名2 > 文件名.sql

        #示例:還原db_plus_core庫(kù)中的tb_doc_permission表的備份
        mysqldump -uroot -p"密碼" db_plus_core < mysqldump_20180114_tb_doc_permission.sql

        #示例:還原所有的庫(kù)(保底操作,按需執(zhí)行)
        mysqldump -uroot -p"密碼" < mysqldump_20240114_all_databases.sql

        通過mysql默認(rèn)的終端執(zhí)行恢復(fù)命令

        【通過source命令恢復(fù)數(shù)據(jù)庫(kù)】
        進(jìn)入mysql數(shù)據(jù)庫(kù)控制臺(tái),mysql -uroot -p3306登陸后
            mysql>use 數(shù)據(jù)庫(kù);
            然后使用source命令,后面參數(shù)為腳本文件(如這里用到的是.sql文件,如果你備份的是.txt文件,那這里寫.txt文件)

            mysql>source crm2.sql #這個(gè)文件是系統(tǒng)路徑下的,默認(rèn)是登陸mysql前的系統(tǒng)路徑,在mysql中查看系統(tǒng)路徑的方法是通過system+系統(tǒng)命令來搞的
            mysql>system ls

        【利用mysql命名恢復(fù)(標(biāo)準(zhǔn))】
        如下:
        mysql -root -p3306 -e "use crm2;drop table student;show tables;" 必須是雙引號(hào)
        mysql -uroot -p3306 crm2<f:\數(shù)據(jù)庫(kù)備份練習(xí)\crm2.sql
        mysql -uroot -p3306 -e "use crm2;show tables;"
        注:如果sql文件里面沒有use db這樣的字樣時(shí),在導(dǎo)入時(shí)就要指定數(shù)據(jù)庫(kù)名了。
        mysql -uroot -p3306 crm2<.sql文件
        建議備份數(shù)據(jù)庫(kù)時(shí)都指定上-B參數(shù),效果好
        說明:mysql不光可以恢復(fù)mysqldump的備份,只要文件中是sql語句,都可以通過mysql命令執(zhí)行到數(shù)據(jù)庫(kù)中
        mysql 帶 -e 參數(shù)實(shí)現(xiàn)非交互式對(duì)話,就是不需要到mysql里面去,在外面執(zhí)行里面的指令的方法,例如:mysql -uroot -p3306 -e "use crm2;show tables;",但是語句必須是雙引號(hào)包裹。
        詳情參考鏈接:https://www.cnblogs.com/yanghongtao/p/10897282.html



        Mysql備份表及部分?jǐn)?shù)據(jù)

        有時(shí)候我們只需要備份某個(gè)表里面的部分?jǐn)?shù)據(jù),快速恢復(fù)關(guān)鍵業(yè)務(wù)。
        【原理】:使用 like 命令快速?gòu)?fù)制一個(gè)表(結(jié)構(gòu)一模一樣),將要備份的部分?jǐn)?shù)據(jù)查詢出來備份到新表里面,使用完了以后再恢復(fù)回去。

        #示例:
        mysql -h10.*.*.9 -P3306 -uroot -p"密碼"
        use db_mystorage;
        #step1:拷貝一份新的表結(jié)構(gòu)
        create table tb_staff_bak like tb_staff;
        #step2:將要備份的部分?jǐn)?shù)據(jù)查詢出來備份到新表里面
        insert into tb_staff_bk select * from tb_staff where name in ('xiong','zhang');
        #step3:清理目標(biāo)數(shù)據(jù)
        delete from tb_staff where name in ('xiong','zhang');

        #回滾與恢復(fù):
        insert into tb_staff select * from tb_staff_bk;

        drop table tb_staff_bk;


        實(shí)例:mysql自動(dòng)備份腳本

        備份方式:通過mysqldump的方式備份數(shù)據(jù)庫(kù),并保留7天備份數(shù)據(jù)。

        #!/bin/bash
        backupdir=/data/mysqlbak #備份文件存放路徑
        time=`date +%Y%m%d-%H%M` #備份文件名稱時(shí)間標(biāo)記

        mysqldump -h10.*.*.9 -P3306 -uroot -p"密碼" --all-databases --single-transaction --default-character-set=utf8 |gzip > $backupdir/mysql$time.sql.gz #備份所有數(shù)據(jù)庫(kù)并打包

        find $backupdir -name "mysql*.sql.gz" -type f -mtime +7 -exec rm {} \; > /dev/null 2>&1 #刪除7天之外的備份文件

        創(chuàng)建備份目錄
        mkdir -pv /data/mysqlbak

        給備份腳本授權(quán)
        chmod +x /data/mysqlbak/mysqlbak.sh

        添加計(jì)劃任務(wù)
        crontab -e
        00 3 * * * /data/mysqlbak/bakmysql.sh

        【恢復(fù)使用】
        解壓
        gzip -d mysql2020703.sql.gz

        非壓縮備份文件恢復(fù):
        mysql -u用戶名 -p < mysql2020703.sql

        從壓縮文件直接恢復(fù):
        gzip < mysql22020703.sql.gz | mysql -u 用戶名 -p

        鏈接:https://www.cnblogs.com/xiongzaiqiren/p/17965612/mysqldump

        (版權(quán)歸原作者所有,侵刪)

        瀏覽 213
        1點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        1點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            黄片在线视频免费 | 日韩综合在线播放 | free×性护士vidos猛烈 | 哪里可以看做爱视频免费网站 | 成人激情五月天 | 欧美一区二区三区久久久久久桃花 | 好叼操这里只有精品 | 久久伊人777777 | 国产精品一区二区人妻喷水 | 扒开腿灌牛奶调教小说 |