数据导入导出还是比较常见的,
一般如果数据不大,直接操作 *.sql 文件即可。
## 导出整个数据库结构和数据
# 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,没有空格
常见有两种方法(还有其他方法,这里不介绍),命令如下:
## mysql -u用户名 -p密码 < 要导入的数据库数据(test.sql)
# mysql -uroot -p123456 < test.sql
## 恢复到指定数据库
# mysql -hhostname -uusername -ppassword databasename < test.sql
或者进入到mysql命令行,用source命令操作
## 使用source导入sql文件
mysql > use test_databasename;
mysql > source /data/test.sql;
但是,更多的时候,数据比较大,需要压缩导入导出。
介绍下另一种导出方式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 # 数据表中的数据
##gunzip < database-schema-create.sql.gz | mysql -uusername -ppassword
# gunzip < database-schema-create.sql.gz | mysql -uroot -p123456
需要指定数据库的名称,即下面命令的最后一个参数:
##gunzip < database.table-schema.sql.gz | mysql -uusername -ppassword databasename
# gunzip < database.table-schema.sql.gz | mysql -uroot -p123456 test
也需要指定数据库的名称,格式同上,命令如下:
##gunzip < database.table.sql.gz | mysql -uusername -ppassword databasename
# gunzip < database.table.sql.gz | mysql -uroot -p123456 test
当然,还有其他很多方法导入导出数据结构及数据,本文只介绍了常用的,简单方法,一般使用,足够了。