欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

mysqldump命令導入導出數(shù)據庫方法與實例匯總

 更新時間:2015年10月12日 10:40:25   投稿:mrr  
這篇文章主要介紹了mysqldump命令導入導出數(shù)據庫方法與實例匯總的相關資料,需要的朋友可以參考下

mysqldump命令的用法

1、導出所有庫

系統(tǒng)命令行

mysqldump -uusername -ppassword --all-databases > all.sql

2、導入所有庫

mysql命令行

mysql>source all.sql;

3、導出某些庫

系統(tǒng)命令行

mysqldump -uusername -ppassword --databases db1 db2 > db1db2.sql

4、導入某些庫

mysql命令行

mysql>source db1db2.sql;

5、導入某個庫

系統(tǒng)命令行

mysql -uusername -ppassword db1 < db1.sql;

或mysql命令行

mysql>source db1.sql;

6、導出某些數(shù)據表

系統(tǒng)命令行

mysqldump -uusername -ppassword db1 table1 table2 > tb1tb2.sql

7、導入某些數(shù)據表

系統(tǒng)命令行

mysql -uusername -ppassword db1 < tb1tb2.sql

或mysql命令行

mysql>
user db1;
source tb1tb2.sql;

8、mysqldump字符集設置

mysqldump -uusername -ppassword --default-character-set=gb2312 db1 table1 > tb1.sql

mysqldump客戶端可用來轉儲數(shù)據庫或搜集數(shù)據庫進行備份或將數(shù)據轉移到另一個sql服務器(不一定是一個mysql服務器)。轉儲包含創(chuàng)建表和/或裝載表的sql語句。
如果在服務器上進行備份,并且表均為myisam表,應考慮使用mysqlhotcopy,因為可以更快地進行備份和恢復。

有3種方式來調用mysqldump:

shell> mysqldump [options] db_name [tables]
shell> mysqldump [options] ---database db1 [db2 db3...]
shell> mysqldump [options] --all--database

如果沒有指定任何表或使用了---database或--all--database選項,則轉儲整個數(shù)據庫。
要想獲得你的版本的mysqldump支持的選項,執(zhí)行mysqldump ---help。

如果運行mysqldump沒有--quick或--opt選項,mysqldump在轉儲結果前將整個結果集裝入內存。如果轉儲大數(shù)據庫可能會出現(xiàn)問題。該選項默認啟用,但可以用--skip-opt禁用。
如果使用最新版本的mysqldump程序生成一個轉儲重裝到很舊版本的mysql服務器中,不應使用--opt或-e選項。
mysqldump支持下面的選項:

 ---help,-?

 顯示幫助消息并退出。

 --add-drop--database

 在每個create database語句前添加drop database語句。

 --add-drop-tables

 在每個create table語句前添加drop table語句。

 --add-locking

 用lock tables和unlock tables語句引用每個表轉儲。重載轉儲文件時插入得更快。

 --all--database,-a

 轉儲所有數(shù)據庫中的所有表。與使用---database選項相同,在命令行中命名所有數(shù)據庫。

 --allow-keywords

 允許創(chuàng)建關鍵字列名。應在每個列名前面加上表名前綴。

 ---comments[={0|1}]

 如果設置為 0,禁止轉儲文件中的其它信息,例如程序版本、服務器版本和主機。--skip—comments與---comments=0的結果相同。 默認值為1,即包括額外信息。

 --compact

 產生少量輸出。該選項禁用注釋并啟用--skip-add-drop-tables、--no-set-names、--skip-disable-keys和--skip-add-locking選項。

 --compatible=name

 產生與其它數(shù)據庫系統(tǒng)或舊的mysql服務器更兼容的輸出。值可以為ansi、mysql323、mysql40、postgresql、oracle、mssql、db2、maxdb、no_key_options、no_tables_options或者no_field_options。要使用幾個值,用逗號將它們隔開。這些值與設置服務器sql模式的相應選項有相同的含義。

 該選項不能保證同其它服務器之間的兼容性。它只啟用那些目前能夠使轉儲輸出更兼容的sql模式值。例如,--compatible=oracle 不映射oracle類型或使用oracle注釋語法的數(shù)據類型。

 --complete-insert,-c

 使用包括列名的完整的insert語句。

 --compress,-c

 壓縮在客戶端和服務器之間發(fā)送的所有信息(如果二者均支持壓縮)。

 --create-option

 在create table語句中包括所有mysql表選項。

 ---database,-b

 轉儲幾個數(shù)據庫。通常情況,mysqldump將命令行中的第1個名字參量看作數(shù)據庫名,后面的名看作表名。使用該選項,它將所有名字參量看作數(shù)據庫名。create database if not exists db_name和use db_name語句包含在每個新數(shù)據庫前的輸出中。

 ---debug[=debug_options],-# [debug_options]

 寫調試日志。debug_options字符串通常為'd:t:o,file_name'。

 --default-character-set=charset
 使用charsetas默認字符集。如果沒有指定,mysqldump使用utf8。
 --delayed-insert
 使用insert delayed語句插入行。
 --delete-master-logs
 在主復制服務器上,完成轉儲操作后刪除二進制日志。該選項自動啟用--master-data。
 --disable-keys,-k
 對于每個表,用/*!40000 alter table tbl_name disable keys */;和/*!40000 alter table tbl_name enable keys */;語句引用insert語句。這樣可以更快地裝載轉儲文件,因為在插入所有行后創(chuàng)建索引。該選項只適合myisam表。
 --extended-insert,-e
 使用包括幾個values列表的多行insert語法。這樣使轉儲文件更小,重載文件時可以加速插入。
 --fields-terminated-by=...,--fields-enclosed-by=...,--fields-optionally-enclosed-by=...,--fields-escaped-by=...,--行-terminated-by=...
 這些選項結合-t選項使用,與load data infile的相應子句有相同的含義。
 --first-slave,-x
 不贊成使用,現(xiàn)在重新命名為--lock-all-tables。
 --flush-logs,-f
 開始轉儲前刷新mysql服務器日志文件。該選項要求reload權限。請注意如果結合--all--database(或-a)選項使用該選項,根據每個轉儲的數(shù)據庫刷新日志。例外情況是當使用--lock-all-tables或--master-data的時候:在這種情況下,日志只刷新一次,在所有 表被鎖定后刷新。如果你想要同時轉儲和刷新日志,應使用--flush-logs連同--lock-all-tables或--master-data。
 --force,-f
 在表轉儲過程中,即使出現(xiàn)sql錯誤也繼續(xù)。
 --host=host_name,-h host_name
 從給定主機的mysql服務器轉儲數(shù)據。默認主機是localhost。
 --hex-blob
 使用十六進制符號轉儲二進制字符串列(例如,'abc' 變?yōu)?x616263)。影響到的列有binary、varbinary、blob。
 --lock-all-tables,-x
 所有數(shù)據庫中的所有表加鎖。在整體轉儲過程中通過全局讀鎖定來實現(xiàn)。該選項自動關閉--single-transaction和--lock-tables。
 --lock-tables,-l
 開始轉儲前鎖定所有表。用read local鎖定表以允許并行插入myisam表。對于事務表例如innodb和bdb,--single-transaction是一個更好的選項,因為它不根本需要鎖定表。
 請注意當轉儲多個數(shù)據庫時,--lock-tables分別為每個數(shù)據庫鎖定表。因此,該選項不能保證轉儲文件中的表在數(shù)據庫之間的邏輯一致性。不同數(shù)據庫表的轉儲狀態(tài)可以完全不同。
 --master-data[=value]
 該選項將二進制日志的位置和文件名寫入到輸出中。該選項要求有reload權限,并且必須啟用二進制日志。如果該選項值等于1,位置和文件名被寫入change master語句形式的轉儲輸出,如果你使用該sql轉儲主服務器以設置從服務器,從服務器從主服務器二進制日志的正確位置開始。如果選項值等于2,change master語句被寫成sql注釋。如果value被省略,這是默認動作。
 --master-data選項啟用--lock-all-tables,除非還指定--single-transaction(在這種情況下,只在剛開始轉儲時短時間獲得全局讀鎖定。又見--single-transaction。在任何一種情況下,日志相關動作發(fā)生在轉儲時。該選項自動關閉--lock-tables。
 --no-create-db,-n
 該選項禁用create database /*!32312 if not exists*/ db_name語句,如果給出---database或--all--database選項,則包含到輸出中。
 --no-create-info,-t
 不寫重新創(chuàng)建每個轉儲表的create table語句。
 --no-data,-d
 不寫表的任何行信息。如果你只想轉儲表的結構這很有用。
 --opt
 該選項是速記;等同于指定 --add-drop-tables--add-locking --create-option --disable-keys--extended-insert --lock-tables --quick --set-charset。它可以給出很快的轉儲操作并產生一個可以很快裝入mysql服務器的轉儲文件。該選項默認開啟,但可以用--skip-opt禁用。要想只禁用確信用-opt啟用的選項,使用--skip形式;例如,--skip-add-drop-tables或--skip-quick。
 --password[=password],-p[password]
 連接服務器時使用的密碼。如果你使用短選項形式(-p),不能在選項和密碼之間有一個空格。如果在命令行中,忽略了--password或-p選項后面的 密碼值,將提示你輸入一個。
 --port=port_num,-p port_num
 用于連接的tcp/ip端口號。
 --protocol={tcp | socket | pipe | memory}
 使用的連接協(xié)議。
 --quick,-q
 該選項用于轉儲大的表。它強制mysqldump從服務器一次一行地檢索表中的行而不是檢索所有行并在輸出前將它緩存到內存中。
 --quote-names,-q
 用‘`'字符引用數(shù)據庫、表和列名。如果服務器sql模式包括ansi_quotes選項,用‘"'字符引用名。默認啟用該選項。可以用--skip-quote-names禁用,但該選項應跟在其它選項后面,例如可以啟用--quote-names的--compatible。
 --result-file=file,-r file
 將輸出轉向給定的文件。該選項應用在windows中,因為它禁止將新行‘\n'字符轉換為‘\r\n'回車、返回/新行序列。
 --routines,-r
 在轉儲的數(shù)據庫中轉儲存儲程序(函數(shù)和程序)。使用---routines產生的輸出包含create procedure和create function語句以重新創(chuàng)建子程序。但是,這些語句不包括屬性,例如子程序定義者或創(chuàng)建和修改時間戳。這說明當重載子程序時,對它們進行創(chuàng)建時定義者應設置為重載用戶,時間戳等于重載時間。
 如果你需要創(chuàng)建的子程序使用原來的定義者和時間戳屬性,不使用--routines。相反,使用一個具有mysql數(shù)據庫相應權限的mysql賬戶直接轉儲和重載mysql.proc表的內容。
 該選項在mysql 5.1.2中添加進來。在此之前,存儲程序不轉儲。
 --set-charset
 將set names default_character_set加到輸出中。該選項默認啟用。要想禁用set names語句,使用--skip-set-charset。
 --single-transaction
 該選項從服務器轉儲數(shù)據之前發(fā)出一個begin sql語句。它只適用于事務表,例如innodb和bdb,因為然后它將在發(fā)出begin而沒有阻塞任何應用程序時轉儲一致的數(shù)據庫狀態(tài)。
 當使用該選項時,應記住只有innodb表能以一致的狀態(tài)被轉儲。例如,使用該選項時任何轉儲的myisam或heap表仍然可以更改狀態(tài)。
 --single-transaction選項和--lock-tables選項是互斥的,因為lock tables會使任何掛起的事務隱含提交。
 要想轉儲大的表,應結合--quick使用該選項。
 --socket=path,-s path
 當連接localhost(為默認主機)時使用的套接字文件。
 --skip--comments
 參見---comments選項的描述。
 --tab=path,-t path
 產生tab分割的數(shù)據文件。對于每個轉儲的表,mysqldump創(chuàng)建一個包含創(chuàng)建表的create table語句的tbl_name.sql文件,和一個包含其數(shù)據的tbl_name.txt文件。選項值為寫入文件的目錄。
 默認情況,.txt數(shù)據文件的格式是在列值和每行后面的新行之間使用tab字符。可以使用--fields-xxx和--行--xxx選項明顯指定格式。
 注釋:該選項只適用于mysqldump與mysqld服務器在同一臺機器上運行時。你必須具有file權限,并且服務器必須有在你指定的目錄中有寫文件的許可。
 --tables
 覆蓋---database或-b選項。選項后面的所有參量被看作表名。
 --triggers
 為每個轉儲的表轉儲觸發(fā)器。該選項默認啟用;用--skip-triggers禁用它。
 --tz-utc
 在轉儲文件中加入set time_zone='+00:00'以便timestamp列可以在具有不同時區(qū)的服務器之間轉儲和重載。(不使用該選項,timestamp列在具有本地時區(qū)的源服務器和目的服務器之間轉儲和重載)。--tz-utc也可以保護由于夏令時帶來的更改。--tz-utc默認啟用。要想禁用它,使用--skip-tz-utc。該選項在mysql 5.1.2中加入。
 --user=user_name,-u user_name
 連接服務器時使用的mysql用戶名。
 --verbose,-v
 冗長模式。打印出程序操作的詳細信息。
 --version,-v
 顯示版本信息并退出。
 --where='where-condition', -w 'where-condition'
 只轉儲給定的where條件選擇的記錄。請注意如果條件包含命令解釋符專用空格或字符,一定要將條件引用起來。
 例如:
 "--where=user='jimf'"
 "-wuserid>1"
 "-wuserid<1"
 --xml,-x
 將轉儲輸出寫成xml。
 還可以使用--var_name=value選項設置下面的變量:
 max_allowed_packet
 客戶端/服務器之間通信的緩存區(qū)的最大大小。最大為1gb。
 net_buffer_length
 客戶端/服務器之間通信的緩存區(qū)的初始大小。當創(chuàng)建多行插入語句時(如同使用選項--extended-insert或--opt),mysqldump創(chuàng)建長度達net_buffer_length的行。如果增加該變量,還應確保在mysql服務器中的net_buffer_length變量至少這么大。
 還可以使用--set-variable=var_name=value或-o var_name=value語法設置變量。然而,現(xiàn)在不贊成使用該語法。
 mysqldump最常用于備份一個整個的數(shù)據庫:
shell> mysqldump --opt db_name > backup-file.sql

可以這樣將轉儲文件讀回到服務器:

shell> mysql db_name < backup-file.sql

 或者為:

shell> mysql -e "source /path-to--backup/backup-file.sql" db_name

 mysqldump也可用于從一個mysql服務器向另一個服務器復制數(shù)據時裝載數(shù)據庫:
shell> mysqldump --opt db_name | mysql --host=remote_host -c db_name

 可以用一個命令轉儲幾個數(shù)據庫:
shell> mysqldump ---database db_name1 [db_name2 ...] > my_databases.sql

 如果想要轉儲所有數(shù)據庫,使用--all--database選項:

shell> mysqldump --all-databases > all_databases.sql

如果表保存在innodb存儲引擎中,mysqldump提供了一種聯(lián)機備份的途徑(參見下面的命令)。該備份只需要在開始轉儲時對所有表進行全局讀鎖定(使用flush tables with read lock)。獲得鎖定后,讀取二進制日志的相應內容并將鎖釋放。因此如果并且只有當發(fā)出flush...時正執(zhí)行一個長的更新語句,mysql服務器才停止直到長語句結束,然后轉儲則釋放鎖。因此如果mysql服務器只接收到短("短執(zhí)行時間")的更新語句,即使有大量的語句,也不會注意到鎖期間。

shell> mysqldump --all-databases --single-transaction > all_databases.sql 

對于點對點恢復(也稱為“前滾”,當你需要恢復舊的備份并重放該備份以后的更改時),循環(huán)二進制日志或至少知道轉儲對應的二進制日志內容很有用:

shell> mysqldump --all-databases --master-data=2 > all_databases.sql
 或

 shell> mysqldump --all-databases --flush-logs --master-data=2 > all_databases.sql

如果表保存在innodb存儲引擎中,同時使用--master-data和--single-transaction提供了一個很方便的方式來進行適合點對點恢復的聯(lián)機備份。

相關文章

  • 細說MySQL死鎖與日志二三事

    細說MySQL死鎖與日志二三事

    這篇文章主要和大家一起聊一聊MySQL死鎖與日志二三事,實際業(yè)務當中如何快速的定位線上MySQL問題,修復異常?本文根據兩個實際case,分享下相關的經驗與方法,感興趣的小伙伴們可以參考一下
    2017-08-08
  • Windows下簡單的Mysql備份BAT腳本分享

    Windows下簡單的Mysql備份BAT腳本分享

    朋友說在windows下面用bat命令備份失敗,他一時找不到問題所在,于是找我?guī)兔Σ榭聪?。查找后解決了該問題,想著總結下來,所以這篇文章主要跟大家分享了一個在Windows下簡單的Mysql備份BAT腳本,需要的朋友可以參考下。
    2017-03-03
  • mysql慢查詢優(yōu)化之從理論和實踐說明limit的優(yōu)點

    mysql慢查詢優(yōu)化之從理論和實踐說明limit的優(yōu)點

    今天小編就為大家分享一篇關于mysql慢查詢優(yōu)化之從理論和實踐說明limit的優(yōu)點,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-04-04
  • 將MySQL查詢結果按值排序的簡要教程

    將MySQL查詢結果按值排序的簡要教程

    這篇文章主要介紹了將MySQL查詢結果按值排序的簡要教程,不過同樣需要對結果進行檢查而決定是否使用order by等其他語句,需要的朋友可以參考下
    2015-12-12
  • mysql 5.7.18 綠色版下載安裝教程

    mysql 5.7.18 綠色版下載安裝教程

    這篇文章主要為大家詳細介紹了mysql 5.7.18 綠色版下載安裝教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • 詳解DBeaver連接MySQL8以上版本以及解決可能遇到的問題

    詳解DBeaver連接MySQL8以上版本以及解決可能遇到的問題

    這篇文章主要介紹了DBeaver連接MySQL8以上版本以及解決可能遇到的問題,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-11-11
  • windows下mysql 5.7版本中修改編碼為utf-8的方法步驟

    windows下mysql 5.7版本中修改編碼為utf-8的方法步驟

    mysql的默認編碼是拉?。╨atin1),當輸入中文的時候就會報錯,所以需要將編碼修改為utf8,從網上找了相關教程都不可以,索性自己摸索后分享給大家,下面這篇文章主要給大家介紹了在mysql 5.7版本中如何修改編碼為utf-8的方法步驟,需要的朋友可以參考下。
    2017-06-06
  • MySQL存儲引擎簡介及MyISAM和InnoDB的區(qū)別

    MySQL存儲引擎簡介及MyISAM和InnoDB的區(qū)別

    這篇文章主要介紹了MySQL存儲引擎簡介及MyISAM和InnoDB的區(qū)別,重點介紹了MyISAM 和 InnoDB的區(qū)別,需要的朋友可以參考下
    2014-05-05
  • MYSQL跨服務器同步數(shù)據經驗分享

    MYSQL跨服務器同步數(shù)據經驗分享

    這篇文章主要介紹了MYSQL跨服務器同步數(shù)據詳細過程,需要的朋友可以參考下
    2014-03-03
  • MySQL?SQL預處理(Prepared)的語法實例與注意事項

    MySQL?SQL預處理(Prepared)的語法實例與注意事項

    所謂預編譯語句就是將此類SQL語句中的值用占位符替代,可以視為將 SQL語句模板化或者說參數(shù)化,一般稱這類語句叫Prepared Statements,下面這篇文章主要給大家介紹了關于MySQL?SQL預處理(Prepared)的相關資料,需要的朋友可以參考下
    2022-01-01

最新評論