在使用MySQL資料庫時,經常需要備份和恢複資料庫,通過匯出sql檔案備份和直接執行sql檔案恢複是非常便捷的方式。本篇文章主要介紹如何對MySQL資料庫通過cmd命令匯出和匯入sql檔案。
匯出
一、匯出資料庫
包含資料對象和資料
mysqldump -hhostname -uusername -ppassword databasename > /home/justin/databasename.sql
二、匯出資料庫表結構
只有資料庫表結構
mysqldump -hhostname -uusername -ppassword -d databasename > /home/justin/databasename.sql
三、匯出預存程序及函數
1、查詢資料庫中的預存程序和函數
方法一:
select `name` from mysql.proc where db = 'databasename' and `type` = 'PROCEDURE'; -- 預存程序select `name` from mysql.proc where db = 'databasename' and `type` = 'FUNCTION'; -- 函數
方法二:
show procedure status;show function status;
2、mysql匯出預存程序及函數
mysqldump -hhostname -uusername -ppassword -ntd -R databasename > /home/justin/prorandfunc.sql
參數說明
-d 結構(--no-data:不匯出任何資料,只匯出資料庫表結構)-t 資料(--no-create-info:只匯出資料,而不添加CREATE TABLE 語句)-n (--no-create-db:只匯出資料,而不添加CREATE DATABASE 語句)-R (--routines:匯出預存程序以及自訂函數)-E (--events:匯出事件)--triggers (預設匯出觸發器,使用--skip-triggers屏蔽匯出)-B (--databases:匯出資料庫列表,單個庫時可省略)--tables 表列表(單個表時可省略)①同時匯出結構以及資料時可同時省略-d和-t②同時 不 匯出結構和資料可使用-ntd③只匯出預存程序和函數可使用-R -ntd④匯出所有(結構&資料&預存程序&函數&事件&觸發器)使用-R -E(相當於①,省略了-d -t;觸發器預設匯出)⑤只匯出結構&函數&事件&觸發器使用 -R -E -d
匯入
1、首先建空資料庫
mysql>create database test;
2、匯入資料庫
方法一:
(1)選擇資料庫
mysql>use test;
(2)設定資料庫編碼
mysql>set names utf8;
(3)匯入資料(注意sql檔案的路徑)
mysql>source /home/justin/test.sql;
方法二:
mysql -hhostname -uusername -ppassword abc < /home/justin/test.sql;