mysql數據導入和導出,備份和遷移

數據導入導出還是比較常見的,

一、常規數據導入導出

一般如果數據不大,直接操作 *.sql 文件即可。

1、數據導出

## 導出整個數據庫結構和數據
# mysqldump -h localhost -P 3306 -uroot -p123456 database > test.sql

## 導出單個數據表結構和數據
# mysqldump -h localhost -P 3306 -uroot -p123456  database table > test.sql

## 導出整個數據庫結構(不包含數據)
# mysqldump -h localhost -P 3306 -uroot -p123456  -d database > test.sql

## 導出單個數據表結構(不包含數據)
# mysqldump -h localhost -P 3306 -uroot -p123456  -d database table > test.sql


## 說明:
## 如果是本機操作,其中 -h localhost -P 3306 可以不需要
## -P 參數,是大P,且有空格;不同於後面密碼的小p,沒有空格

 

2、數據導入

常見有兩種方法(還有其他方法,這裏不介紹),命令如下:

法1:

## mysql -u用戶名 -p密碼 < 要導入的數據庫數據(test.sql)
# mysql -uroot -p123456 < test.sql

## 恢復到指定數據庫
# mysql -hhostname -uusername -ppassword databasename < test.sql

法2:

或者進入到mysql命令行,用source命令操作

## 使用source導入sql文件
mysql > use test_databasename;
mysql > source /data/test.sql;

但是,更多的時候,數據比較大,需要壓縮導入導出。

 

 

二、數據壓縮導入導出

1、數據導出

介紹下另一種導出方式mysqldump:

## 導出數據庫
# mysqldump –uuser -ppassword -hhost test_databasename > test.sql

## 打包
# tar zcvf test.sql.tgz test.sql


## 當然,也可以一步到位
## mysqldump < mysqldump options> | gzip > outputfile.sql.gz
# mysqldump -uroot -p123456 test_databasename | gzip > test.sql.gz

## 注意:不支持gzip壓縮格式,其他主流的壓縮格式都支持,如:zip等

導出的壓縮包解壓,一般會有 3種類型的文件

database-schema-create.sql.gz # 數據庫結構文件

database.table-schema.sql.gz # 數據表的表結構文件

database.table.sql.gz # 數據表中的數據

 

2、數據導入

1、數據庫結構導入:

##gunzip < database-schema-create.sql.gz | mysql -uusername -ppassword

# gunzip < database-schema-create.sql.gz | mysql -uroot -p123456

2、數據表結構導入:

需要指定數據庫的名稱,即下面命令的最後一個參數:

##gunzip < database.table-schema.sql.gz | mysql -uusername -ppassword databasename

# gunzip < database.table-schema.sql.gz | mysql -uroot -p123456 test

3、數據導入:

也需要指定數據庫的名稱,格式同上,命令如下:

##gunzip < database.table.sql.gz | mysql -uusername -ppassword databasename

# gunzip < database.table.sql.gz | mysql -uroot -p123456 test

 

當然,還有其他很多方法導入導出數據結構及數據,本文只介紹了常用的,簡單方法,一般使用,足夠了。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章