国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

MySQL備份時排除指定數據庫的方法

2024-07-24 13:09:00
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了MySQL備份時排除指定數據庫的方法的相關資料,需要的朋友可以參考下
 

使用mysqldump命令備份時候,--all-databases 可以備份所有的數據庫。 使用ignore-table 還可以排除制定的表。但是,mysqldump沒有參數可以排除數據庫的。

要備份的數據庫少的時候,可以通過mysqldump -uroot -p123456 --databases db1 db2 db3 > mysqldump.sql 這樣來備份。

但是假如數據庫有數十個的話,這樣寫起來很累人,也很low。解決辦法還是有的,看下面:

【下面演示用的mysql用戶名的root,密碼123456】

mysql -uroot -p123456 -e 'show databases;'|grep -E -v "Database|information_schema|mysql|test" |xargs mysqldump -uroot -p123456 --databases > mysqldump1.sql

但是很不幸的是,在mysql5.5上執行備份時報錯了。

查了下資料,發現是由于5.5以后,mysql的performance_schema庫導致的。那我們備份時跳過該庫即可,下面2種方法任選:

1、mysql -uroot -p123456 -e 'show databases;'|grep -E -v "Database|information_schema|mysql|test" |xargs mysqldump -uroot -p123456 --skip-lock-tables performance_schema --databases > 2.sql

2、mysql -uroot -p123456 -e 'show databases;'|grep -E -v "Database|information_schema|mysql|performance_schema" |xargs mysqldump -uroot -p123456 --databases > 3.sql

我更喜歡第二種的寫法。

下面是我寫的一個備份的mysql的腳本,每天夜里執行一次。寫的簡單些,語句也沒有做優化。

#!/bin/bash# Description: backup mysql data# Author: leeFILE="mysql_`date +%F`"BACKDIR="/mysqlbackup"CONF_FILE="/etc/my.cnf"mysql -uroot -e 'show databases'|egrep -v "Database|information_schema|performance_schema" / |xargs mysqldump -uroot --databases > $BACKDIR/$FILE.sql && cp $CONF_FILE $BACKDIR/$FILE.cnf /&& echo -e "Machine: Oracle/nIP: 172.16.10.12/nStatus: MySQL is backup complete" | / mail -s "MySQL BackUP Complete" lee@126.com

下圖的代碼看的更清楚寫。

MySQL備份,數據庫

下面給大家介紹下MySQL使用mysqldump備份數據庫時排除指定表

#!/bin/shfor j in `mysql -uroot -e "USE spservice;SHOW TABLES" | grep -v Tables`do  case $j in    mo_log|mt_log|report_info)      :      ;;    *)    mysqldump -uroot --default-character-set=gbk --opt spservice $j >> $j.sql  esacdone>>表名不固定 #!/bin/shfor j in `mysql -uroot -e "USE spservice;SHOW TABLES" | grep -v Tables`do  for i in "$@"  do    if [ $j != $i ];then      mysqldump -uroot --default-character-set=gbk --opt spservice $j >> $j.sql    fi  donedone>>更簡潔的方法#!/bin/shfor j in `mysql -uroot -e "USE spservice;SHOW TABLES" | grep -v Tables`do  echo $@ | grep -wq "/<$j/>"  if [ $? -ne 0 ];then    mysqldump -uroot --default-character-set=gbk --opt spservice $j >> $j.sql  fidone>>使用方法sh exclude.sh mo_log mt_log report_log#定義一個shell數組tables=(mo_log mt_log report_log)sh exclude.sh ${tables[@]}


注:相關教程知識閱讀請移步到MYSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 五原县| 南宫市| 长白| 台安县| 邹平县| 郑州市| 嫩江县| 和静县| 黄龙县| 广汉市| 石城县| 嘉义县| 新绛县| 会理县| 莆田市| 鹿邑县| 天峨县| 湛江市| 隆德县| 玉林市| 休宁县| 长宁区| 潢川县| 石棉县| 南雄市| 寿光市| 柳河县| 宝坻区| 合水县| 马尔康县| 连州市| 桐乡市| 会理县| 晋中市| 洛阳市| 嘉兴市| 和林格尔县| 淮安市| 福建省| 游戏| 江孜县|