mysql實現(xiàn)從導(dǎo)出數(shù)據(jù)的sql文件中只導(dǎo)入指定的一個表
場景
昨天系統(tǒng)自動備份了某一個數(shù)據(jù)庫的全部表數(shù)據(jù),名dbAll.sql.gz。文件較大(如40G)
今天因發(fā)現(xiàn)某一個表tableA的一條數(shù)據(jù)存在問題,需核對兩條記錄的變化。需從dbAll中找回tableA的數(shù)據(jù),以便比較該記錄。
操作方案
1.將dbAll.sql.gz導(dǎo)入待比較的數(shù)據(jù)庫(臨時數(shù)據(jù)庫)中,然后比較tableA。不推介,因為數(shù)據(jù)量太大,很耗時
2.解壓dbAll.sql.gz后,通過Java代碼讀取dbAll.sql中的關(guān)于tableA的CREATE語句及INSERT語句等到文件tableA.sql,然后通過tableA.sql導(dǎo)入臨時數(shù)據(jù)庫即可進行比較。
3.參見(沒試過):mysqldump 導(dǎo)出的是全庫 alldb.sql 導(dǎo)入的時候可不可以只導(dǎo)其中的一個表
法1:
perl extract_sql.pl -t mytable -r mydumpfile > mytable.sql
法2:
cat test1db.sql | sed -n ‘/Table structure for table .test1./,/Table structure for table .test2./p’>/tmp/xxx.sql
法3:
awk ‘/Table structure for table .test1./,/Table structure for table .test2./{print}’ src_bake_db.sql.gz > targetdb.sql
法3說明:將src_bake_db.sql.gz壓縮文件中的test1、test2表的數(shù)據(jù)導(dǎo)出到targetdb.sql中
補充知識:mysql命令行導(dǎo)出整個庫里面所有表的前一百條數(shù)據(jù)
如下所示:
mysqldump -uysp -pYspxxx db_name --where='1=1 limit 100' >/mnt/share/paxxx.com/backup.sql
直接在命令行運行就可以了,不需要登陸mysql客戶端。
mysqldump -h 服務(wù)器名 -u 賬號名-p 數(shù)據(jù)庫名 --where='true limit 100'> /tmp/supports_launch.sql
phpmyadmin導(dǎo)出php腳本:
http://local.phpmyadmin.com/export.php
以上這篇mysql實現(xiàn)從導(dǎo)出數(shù)據(jù)的sql文件中只導(dǎo)入指定的一個表就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. 關(guān)于Oracle數(shù)據(jù)庫熱備份腳本深入剖析2. Sql server數(shù)據(jù)庫開發(fā)常用匯總3. ORACLE中如何實現(xiàn)ASCII字符串和16進制串互相轉(zhuǎn)換4. Access數(shù)據(jù)庫安全的幾個問題5. Oracle的PDB數(shù)據(jù)庫創(chuàng)建DIRECTORY時遇到ORA-65254問題及解決方法6. MySQL雙主(主主)架構(gòu)配置方案7. MySQL 的啟動選項和系統(tǒng)變量實例詳解8. mysql-bin.000001文件的來源及處理方法9. MySQL存儲過程例子(包含事務(wù)、參數(shù)、嵌套調(diào)用、游標循環(huán)等)10. 如何遠程調(diào)用ACCESS數(shù)據(jù)庫
