mysql导出导入
Mysql中怎么导出数据,Mysql的导入操作。
Mysql版本是5.6.14,查看Mysql版本sql为:
select version();
示例数据库为test。
具体操作:
复制代码 代码示例:
--导出数据库(创建数据库,表,数据)
mysqldump -uroot -p test --databases --default-character-set=utf8>f:/saveFile/out_all_utf_db.sql
直接在cmd命令行下运行即可,数据库编码设置是utf8,所以默认的编码是utf8,如果是gbk,请改成gbk,--default-character-set=utf8,不写也没有影响。
--databases 作用是在文件中添加数据库的创建语句。
如果不想要创建数据库,可以这样写:
复制代码 代码示例:
--导出数据库(表,数据)
mysqldump -uroot -p test --default-character-set=utf8>f:/saveFile/out_with_utf8_db.sql
mysqldump -uroot -p test --default-character-set=gbk>f:/saveFile/out_with_gbk_db.sql
以下导出包含表创建语句,以及数据插入。
如果只想要创建数据库和表,可以这样写:
复制代码 代码示例:
--导出数据库(创建数据库,表)
mysqldump -uroot -p -d test --databases --add-drop-table --default-character-set=utf8>f:/saveFile/out_with_db_table_db.sql
如果只想要创建表,可以这样写:
复制代码 代码示例:
--导出数据库(表)
mysqldump -uroot -p -d test --add-drop-table --default-character-set=utf8>f:/saveFile/out_with_table_db.sql
如只想要表的数据,可以这样:
复制代码 代码示例:
--导出数据库(表数据)
mysqldump -uroot -p -t test --default-character-set=utf8>f:/saveFile/out_with_data_only_db.sql
上面是导出数据库的整个表,插入语句中有以下内容:
复制代码 代码示例:
LOCK TABLES `user_t3` WRITE;
insert into.....
UNLOCK TABLES;
如果不想要lock表,可以这样:
复制代码 代码示例:
--导出数据库(表数据,无Lock)
mysqldump -uroot -p -t test --add-locks=false --default-character-set=utf8>f:/saveFile/out_with_data_only_on_lock_db.sql
导出单个表与上面类似:
复制代码 代码示例:
--导出单个表
mysqldump -uroot -p test user_t3 --default-character-set=utf8>f:/saveFile/out_user_data.sql
如果想一次导出多个表,表名请用空格隔开:
复制代码 代码示例:
--导出多个表
mysqldump -uroot -p test user_t2 user_t3 --default-character-set=utf8>f:/saveFile/out_user2_data.sql
导出表结构:
复制代码 代码示例:
--导出表结构
mysqldump -uroot -p -d test user_t3 --add-drop-table --default-character-set=utf8>f:/saveFile/out_user_no_data.sql
导出表数据:
复制代码 代码示例:
--导出表数据
mysqldump -uroot -p -t test user_t3 --default-character-set=utf8>f:/saveFile/out_user_only_data.sql
导出表数据,不含Lock语句
复制代码 代码示例:
--导出表数据 无Lock
mysqldump -uroot -p -t test user_t3 --add-locks=false --default-character-set=utf8>f:/saveFile/out_user_no_lock_data.sql
以下是mysql数据库导入的一些方法。
方法1直接在cmd下运行:
复制代码 代码示例:
--导入
mysql -h localhost -u root -p test_tmp <f:/saveFile/out_user_data.sql
方法2,先登录Mysql
复制代码 代码示例:
--要登录
use test_tmp;
source f:/saveFile/out_user_data.sql
附,与mysql数据导出导入相关的内容。
1,--databases只能用在导出整个数据库上面,不能用在导出单个或多个表上面。
2,指定文件编码可以使用default-character-set参数,值可以为utf8,gbk。
3,取消Lock信息使用--add-locks=false。
4,如果想在导出的sql中自动提交,可以使用--no-autocommit。
使用之后,导出的sql文件中将有如下内容:
set autocommit=0;
INSERT INTO....
commit;
5,导出表结构使用-d --add-drop-table,-d意思是no data,add-drop-table意思是在上drop table语句,我的是默认有的。
6,只导出数据,可以使用--no-create-info或者-t参数。
7,mysqldump中各个参数可以叠加,一次可以使用多个。
最后如果不确定如何使用,请使用:
mysqldump --help
查看各个参数的具体意思。
如只想要数据,不想要任何sql语句,可以这样:
复制代码 代码示例:
select * from user_t3 into outfile "f:/saveFile/test_load.sql"
导入可以这样:
复制代码 代码示例:
load data infile "f:/saveFile/test_load.sql" into table user_t3;
详情请自行搜索load 命令使用。
另一个导入导出的方法是使用图形工具,Oracle可以使用sql/plus,Mysql可以使用Navicat Premium,图形界面用起来很简单的,可以从Excel文件中导入,很方便。
如果sql文件较大,推荐使用命令行。
为大家推荐一个sql文件切割工具,SQLDumpSplitter,可以指定文件切割的大小,不会把一条sql切割到2个文件,很智能,再使用命令行导入,非常简单。