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