日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql dump 1017_MySQL数据库导出 - Can't Wait Any Longer - OSCHINA - 中文开源技术交流社区...

發布時間:2023/12/9 数据库 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql dump 1017_MySQL数据库导出 - Can't Wait Any Longer - OSCHINA - 中文开源技术交流社区... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文內容主要來自MySQL官方文檔:“MySQL5.1 Reference,2.10.3. 將MySQL數據庫拷貝到另一臺機器”

注意:參數名與值間可以不用空格,如

-uroot

-u root

均可;某些參數會有不同含義

1.

數據庫導出(-A導出所有數據庫,-B指定數據庫,可不寫-B直接寫數據庫名):

mysqldump -uroot -p密碼 -B數據庫名 -h主機地址(IP) > now.sql

2.

表結構導出(-d,--no-data不導出row):

mysqldump -uroot -p123456 -d -h主機地址(IP) > now.sql

可能遇到的錯誤:

All tables in the MERGE table are not identically defined when using LOCK TABLES-大意是說某個MERGE引擎的表結構中定義的子表全部不存在,找到該表后drop掉或者重建即可。

mysqldump: Got error: 1017: Can't find file: 'abc' (errno: 2) when using LOCK TABLES-這個可能是某個表的數據庫文件被刪除了(如MyISAM的表結構文件table.frm不存在但是INFORMATION_SCHEMA中的表名并未刪除,導致可以查到該表,但是其表結構數據已經不存在)

3.

在其他服務器創建數據庫:

mysqladmin -h

主機地址(IP)

create 要創建的數據庫名 -p密碼

4. 導出到文件:(需支持管道和gzip,-q指quick導出,不進緩沖區直接導入輸出流,默認開啟,使用--skip-quick來關閉)

mysqldump -q 數據庫名 -p | gzip now.gz

5.

導出到其他服務器:(--opt包含瑣表等多項操作,默認開啟,使用--skip-opt關閉)

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

6.

同時導出存儲過程:(-R導出存儲過程和函數)

mysqldump --opt -p密碼 -R -B 數據庫名?> functions.sql

7.

單獨導出存儲過程:(-n指--no-create-db,-t指--no-create-info,分別表示不導出建數據庫和建表的語句,其中-n僅在-A導出所有數據庫或使用-B指定數據庫時才生效)

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

8.導出到其他服務器報錯:

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 即可。

9.查看存儲過程、函數和觸發器的語句:

SHOW PROCEDURE STATUS;

SHOW FUNCTION STATUS;

SHOW TRIGGERS FROM test;

MySQL5.0 - 5.1.20不支持“SHOW CREATE TRIGGER”,于是有大牛分別用函數和視圖寫了一個等價的方法:

CREATE FUNCTION SHOW_CREATE_TRIGGER(in_trigger varchar(255))

RETURNS text READS SQL DATA

BEGIN

DECLARE returnText text;

SELECT CONCAT_WS(

" ",

"CREATE TRIGGER",

TRIGGER_NAME,

ACTION_TIMING,

EVENT_MANIPULATION,

"ON",

EVENT_OBJECT_TABLE,

"FOR EACH ROW",

ACTION_STATEMENT) into returnText

FROM information_schema.triggers;

RETURN returnText;

END

10.如果不希望導出的數據中包含注釋,可以使用“--skip-comments”或“--compact”,后者包含了前者以及其他參數,但還是會有少量信息。使用“mysqldumpl --help”可以看到完整的參數信息。

11.后來發現低版本的mysqldump貌似不支持-R參數:mysqldump --version

mysqldump ?Ver 10.9 Distrib 4.1.20, for redhat-linux-gnu (i386)

參數說明:

-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(給所有的表加讀鎖)

總結

以上是生活随笔為你收集整理的mysql dump 1017_MySQL数据库导出 - Can't Wait Any Longer - OSCHINA - 中文开源技术交流社区...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。