mysqldump資料庫備份還原詳解

2021-09-17 02:42:28 字數 3151 閱讀 7346

mysqldump備份常見用法

1、匯出整個資料庫(包括資料庫中的資料)

mysqldump -u username -p dbname > dbname.sql    

2、匯出資料庫結構(不含資料)

mysqldump -u username -p -d dbname > dbname.sql    

3、匯出資料庫中的某張資料表(包含資料)

mysqldump -u username -p dbname tablename > tablename.sq

mysqldump -uroot -p -b dbname --table tablename > tablename.sql

4、匯出資料庫中的某張資料表的表結構(不含資料)

mysqldump -u username -p -d dbname tablename > tablename.sql 

5、備份資料庫時使用引數(--ignore-table)排除某個表或多個表

mysqldump -uroot -p「password」 --ignore-table=dbname.table1 --ignore-table=dbname.table2 dbname > /opt/backup.sql

6、設定mysql使用者許可權:

如果想允許使用者myuser從ip為192.168.1.6的主機連線到mysql伺服器的dk資料庫(dk資料庫所有表許可權對應的是dk.*),並使用mypassword作為密碼,如下:

grant all privileges on dk.* to 'myuser'@'192.168.1.3' identified by   'mypassword' with grant option;

flush   privileges;

sql檔案還原方法

1、mysql -uroot -p"db_password" -f dbname < backup.sql (-f 引數表示在匯出過程中忽略出現的sql錯誤)

nohup mysql -uroot -p"db_password" -f dbname < backup.sql > /dev/null 2>&1 & (在匯入較大的sql檔案時可以放到後台執行)

2、mysql -uroot -p 先登入到資料庫,use dbname; 切換到需要匯入的庫中,然後執行 source /opt/backup.sql; 這樣就可以匯入了

mysqldump 引數詳解

--host 指定要備份資料庫的伺服器

--port mysql伺服器的埠號

--user 連線mysql伺服器的使用者名稱

--password 連線mysql伺服器的密碼

--add-locks 備份資料庫表時鎖定資料庫表

--databases, -b 匯出多少資料庫,引數後面所有參量都被看作資料庫名

--all-databases 備份mysql伺服器上的所有資料庫

--all-tablespaces , -y匯出全部表空間 -y不匯出任何表空間資訊

--add-drop-table 在每個建立資料庫表語句前新增刪除資料庫表的語句

--no-create-db 禁止生成建立資料庫語句

--no-create-info 禁止生成建立資料庫庫表語句

--complete-insert, -c使用完整的insert語句(包含列名稱),這麼做能提高插入效率,但是可能會受到max_allowed_packet引數的影響而導致插入失敗

--no-data, -d 不匯出任何資料,只匯出資料庫表結構

--no-create-info, -t 只匯出資料,而不新增create table 語句

--no-create-db, -n 只匯出資料,而不新增create database 語句

--ignore-table 匯出資料庫時忽略某個表

--force,-f 在匯出過程中忽略出現的sql錯誤,當出現錯誤時仍然繼續後面的操作

--add-drop-database 每個資料庫建立之前新增drop資料庫語句

--add-drop-table 每個資料表建立之前新增drop資料表語句,預設為開啟狀態,使用–skip-add-drop-table取消選項

--add-locks在每個表匯出之前增加lock tables並且之後unlock table,預設為開啟狀態,使用–skip-add-locks取消選項

--default-character-set 設定預設字符集,預設值為utf8

--comments 附加注釋資訊,預設為開啟,可以--skip-comments取消

--compact匯出更少的輸出資訊(用於除錯),去掉注釋和頭尾等結構,(可以使用選項 –skip-add-drop-table –skip-add-locks –skip-comments –skip-disable-keys)

--events, -e 匯出事件

--flush-privileges 在匯出mysql資料庫之後,發出一條flush privileges 語句

--flush-logs 開始匯出之前重新整理日誌,請注意,假如一次匯出多個資料庫(使用選項–databases或者–all-databases),將會逐個資料庫重新整理日誌

除使用–lock-all-tables或者–master-data外,在這種情況下,日誌將會被重新整理一次,相應的表同時被鎖定,因此,如果打算同時匯出和重新整理日誌應該使用–lock-all-tables 或者–master-data 和–flush-logs

--delayed-insert 採用延時插入方式(insert delayed)

--comments 新增注釋資訊

--compact 壓縮模式,產生更少的輸出

--complete-insert 輸出完成的插入語句

--default-character-set 指定預設字符集

--lock-tables 備份前,鎖定所有資料庫表

--lock-all-tables, -x提交請求鎖定所有資料庫中的所有表,以保證資料的一致性,這是乙個全域性讀鎖,並且自動關閉–single-transaction 和–lock-tables 選項

--debug 輸出debug資訊,用於除錯(預設值為d:t:o,/tmp/mysqldump.trace)例 mysqldump -uroot -p –all-databases –debug=」 d:t:o,/tmp/debug.trace」

**:

mysqldump 資料庫備份

mysqldump客戶端可用來轉儲資料庫或蒐集資料庫進行備份,轉儲包含建立表和 或裝載表的sql語句。適用於innodb引擎的資料庫。有3種方式來呼叫mysqldump 1 mysqldump options db name tables 2 mysqldump options database d...

mysqldump備份還原資料庫

1.用mysql實用工具mysqldump備份資料庫 最常用的語法格式 mysqldump opt database backup file.sql 例子 mysqldump uroot ppassword d mysql.sql 2.備份mysql資料庫 由於mysqldump匯出的是完整的sql...

mysqldump備份資料庫

a 匯出檔案 mysqldump remotedatabasename tablename1,tablename2,tablename3 u root ppassword c r localfilename b 匯出到本地資料庫 mysqldump remotedatabasename tablen...