數據導入導出還是比較常見的,
一、常規數據導入導出
一般如果數據不大,直接操作 *.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
當然,還有其他很多方法導入導出數據結構及數據,本文只介紹了常用的,簡單方法,一般使用,足夠了。