MySQL 數據庫導出

fmms 13年前發布 | 37K 次閱讀 MySQL 數據庫服務器

本文內容主要來自MySQL官方文檔:“MySQL5.1 Reference,2.10.3. 將MySQL數據庫拷貝到另一臺機器”
注意:部分參數名與值間可以不用空格,如 -uroot -u root 均可;某些參數會有不同含義,如 -ppwd -p pwd 有時分別表示密碼或數據庫。

1. 數據庫導出:
mysqldump -uroot -p 數據庫名 -h主機地址(IP) > now.sql

2. 表結構導出:
mysqldump -uroot -p123456 -d 數據庫名 -h 主機地址(IP)  > now.sql

3. 在其他服務器創建數據庫:
mysqladmin -h  主機地址(IP)  create 要創建的數據庫名 -p密碼

4. 導出到文件:(僅在shell環境,需要gzip支持)
mysqldump --quick 數據庫名 -p | gzip now.gz

5. 導出到其他服務器:

mysqldump --opt 數據庫名 -p密碼 | mysql -h 遠程數據庫地址(IP) 遠程數據庫名 -p遠程數據庫密碼

示例:mysqldump --opt db -pdbpwd | mysql -h 127.0.0.1 rdb -prdbpwd

(默認是:-uroot,沒有導出存儲過程)

6. 同時導出存儲過程:
mysqldump --opt 數據庫名 -p密碼 -R -B | mysql -h 遠程數據庫地址(IP) 遠程數據庫名 -p遠程數據庫密碼

7. 單獨導出存儲過程:
mysqldump --opt 數據庫名 -p密碼 -n -d -t -R | mysql -h  遠程數據庫地址(IP) 遠程數據庫名 -p遠程數據庫密碼
或:
mysqldump  數據庫名 -p密碼  -n -d -t -R | mysql -h  遠程數據庫地址(IP) 遠程數據庫名 -p遠程數據庫密碼
導出到其他服務器會報錯:

ERROR 1235 (42000) at line 26: This version of MySQL doesn't yet support 'multiple triggers with the same action time and event for one table'

大意是說MySQL(5.0版)暫不支持在同一操作中導出一張表的多個觸發器。

解決辦法: 默認不帶任何參數的時候 tiggers 值為真,那么我們修改他的值為假,給mysqldump 加上開關: --triggers=false 即可。

參考:http://blog.chinaunix.net/space.php?uid=259788&do=blog&id=2139359

http://blog.csdn.net/stevenyanzhi/article/details/6010229

8. 導出存儲過程到文件:
mysqldump 數據庫 -p密碼 -ndtR > procedure.sql
同樣會出現上面的錯誤,解決方法:

mysqldump 數據庫 -p密碼 -ndtR --triggers=false | mysql -h 遠程數據庫地址(IP) 遠程數據庫名 -p遠程數據庫密碼

導出存儲過程部分參考了這里:http://samyu.blog.51cto.com/344284/146428

引用:

參數說明:
-n:   --no-create-db
-d:   --no-data
-t:   --no-create-info
-R:   --routines      Dump stored routines (functions and procedures)
Mysqldump是客戶端工具用來備份數據庫或在不同數據庫之間進行數據遷移。備份內容包含創建活裝載表的SQL語句:
主要參數介紹:
1.連接選項
  -u,--user=name
  -p,--password=name
  -h,--host=name
  -P,--port=#
2.輸出內容選項
 --add-drop-database
 --add-drop-table
 -n;--no-create-db
 -d;--no-data
 -t;--no-create-info
3.輸出格式選項
--compact
-c --complete-insert
-T(指定數據表中的數據備份為單純的數據文件和建表SQL兩個文件)
注意:xx.sql建表文件是以linux的root用戶創建,而xx.txt文件則是一linux的mysql用戶創建,因此這兩個文件的存放路徑一定要保證mysql用戶有讀寫創建文件的權限。
--fields-terminated-by=name(域分隔符)
--fields-enclosed-by=name(域引用符)
--fields-optionally-enclosed-by=name(域引用可選字符)
--fields-escaped-by=name(轉義字符)
4.字符集選項
--default--character-set=xx
5.其他選項
-F --flush-logs(備份前刷新日志)
-l --lock-tables(給所有的表加讀鎖)

 本文由用戶 fmms 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!