今天想匯出部分資料找了半天終於找到對應的幾個方法
首先看下字元集,省的匯出的時候是亂碼
1.用命令
| 代碼如下 |
複製代碼 |
mysql> SHOW VARIABLES LIKE "character_set%"; |
根據對應的字元集value決定採用匯出字元latin1 還是utf8
2.採用 –where的方式匯出
| 代碼如下 |
複製代碼 |
mysqldump -uroot -p123456 --default-character-set=latin1 i5a6 i5a6_data --where=" id < 100" > bki5a6.sql |
3.採用建立新表結構和原來表相同複製部分資料的形式再全部匯出新表資料即可
| 代碼如下 |
複製代碼 |
INSERT INTO Table2(field1,field2,...) SELECT value1,value2,... FROM Table1 |
涉及更多 mysql備份匯入匯出說明(二進位匯出等)
1.匯出整個資料庫(–hex-blob 為有blob資料做的,防止亂碼和匯入失敗用)
mysqldump -u 使用者名稱 -p 資料庫名 > 匯出的檔案名稱
| 代碼如下 |
複製代碼 |
mysqldump -u root -p --default-character-set=gbk --hex-blob i5a6 > i5a6.sql |
2.匯出一個表
mysqldump -u 使用者名稱 -p 資料庫名 表名> 匯出的檔案名稱
| 代碼如下 |
複製代碼 |
mysqldump -u root -p i5a6 users> i5a6.sql |
3.匯出一個資料庫結構
| 代碼如下 |
複製代碼 |
mysqldump -u root -p -d --add-drop-table i5a6 >d:/i5a6.sql |
-d 沒有資料 –add-drop-table 在每個create語句之前增加一個drop table
4.匯入資料庫
常用source 命令
進入mysql資料庫控制台,
如mysql -u root -p
mysql>use 資料庫
然後使用source命令,後面參數為指令檔(如這裡用到的.sql)
| 代碼如下 |
複製代碼 |
mysql>source d:/i5a6.sql |
另附錄一份備份的shell指令碼(backup.sh)
| 代碼如下 |
複製代碼 |
date_str=`date +%Y%m%d` cd /data2/backup mysqldump -h localhost -u root --password=xxxxx -R -e \ --max_allowed_packet=1048576 --net_buffer_length=16384 i5a6\ | gzip > /data2/backup/i5a6_$date_str.sql.gz |
完畢,感覺採用mysqldump 匯出的時候更省事,流著以後用的時候好直接翻閱