首頁  >  文章  >  資料庫  >  具體分析mysqldump備份資料庫時排除某些函式庫的範例程式碼

具體分析mysqldump備份資料庫時排除某些函式庫的範例程式碼

黄舟
黄舟原創
2017-03-23 13:26:441494瀏覽

下面小編就為大家帶來一篇mysqldump備份資料庫時排除某些函式庫的實例。小編覺得蠻不錯的,現在就分享給大家,也給大家做個參考。一起跟著小編過來看看吧

說明:

#使用mysqldump –all-databases會匯出所有函式庫。但如果做主從,從主函式庫dump出資料時,我們是不需要也不想要information_schema 和 mysql 函式庫的。資料庫少的情況下還可以透過/usr/local/mysql/bin/mysqldump -uroot -p --databases db1 db2 > db1db2.sql 這樣再匯出,但如果資料多,這樣指定就很麻煩了。

mysql是支援 ignore-table 的,但是沒有ignore-database,所以要匯出除 information_schema和mysql函式庫的它所有函式庫,難道就只能一個個指定database嗎?

解決:

# mysql -e "show databases;" -uroot -p| grep -Ev "Database|information_schema|mysql|test" | xargs mysqldump -uroot -p --databases > mysql_dump.sql

#附錄:

##附錄1:

mysqldump: Got error: 1142: SELECT,LOCK TABL command denied to user ‘root'@'localhost' for table ‘cond_instances' when using LOCK TABLES

在mysql5.5中增加了performance_schema,當我們進行mysqldump的時候,會報如下

錯誤訊息
#

mysqldump: Got error: 1142: SELECT,LOCK TABL command denied to user ‘root'@'localhost' for table ‘cond_instances' when using LOCK TABLES

我們可以在mysqldump中加上參數–skip-lock-tables,如


# mysqldump  -uroot  -p   --skip-lock-tables  performance_schema > performance_schema.sql 或者过滤掉performance_schema这个库
# mysql -e "show databases;"
 -uroot -p| grep -Ev "Database|information_schema|mysql|test|performance_schema" | xargs mysqldump -uroot -p --databases > mysql_dump.sql

以上是具體分析mysqldump備份資料庫時排除某些函式庫的範例程式碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn