MySQL命令行导入导出文件(全)
命令行导出数据库相关表为SQL文件
语法:mysqldump -h[主机所在IP] -u[用户名] -p [要导出的数据库]>[导出的路径//[文件名].sql]
例子:
1 | mysqldump -hlocalhost -uroot -p reward_testdb>E://reward_testdb.sql |
导出数据库表结构
语法:mysqldump -d [数据库名] -u [用户名] -p[密码] --tables [表名1] [表名2] [表名3]>[导出路径]
例子:
1 | mysqldump -d reward_testdb -u root -p123456 --tables t_awards t_awards_detail >D:\t_awards.sql |
导出数据库表结构和数据
语法(去掉-d):mysqldump [数据库名] -u [用户名] -p[密码] --tables [表名1] [表名2] >[导出路径]
例子(去掉-d):
1 | mysqldump reward_testdb -u root -pa123456 --tables t_awards t_awards_detail >D:\t_awards.sql |
命令行导入SQL文件到MySQL
命令行登陆到MySQL并选择要使用的数据库
语法:mysql -u[用户名] -h[主机所在地址,默认不写是localhost] -p
例子:
1 | mysql -uroot -p |
将SQL文件进行导入
语法:source [所在的路径//*.sql]
例子:
1 | source E://t_awards_detail.sql |
命令行直接导出Excle文件
在my.ini文件中新增下面的配置,重启MySQL
- 在My.ini文件的[mysqld]下面添加;文件路径必须存在否则MySQL服务无法启动
1 | # ""表示所有目录都有权限,也可写成secure_file_priv="" |
- 停止、重启MySQL(不区分大小写)
1 | C:\Users\liquanhong>net stop MySQL |
命令行登陆到MySQL并选择要使用的数据库
语法:mysql -u[用户名] -h[主机所在地址,默认不写是localhost] -p
1 | mysql -uroot -p |
导出命令
语法:SQL查询语句 into outfile ‘文件路径(左划线分割)’;
例子一(不含列名):
1 | # 文件后缀可以随便写 txt、csv、xls、xlsx、sql都可以 |
例子二(含列名):
1 | # 用union all查列名,文件后缀可以随便写 txt、csv、xls、xlsx、sql都可以 |
如果数据库文本有换行,用上面的两个SQL格式会乱,所以需要对每个字段的数据都用" "包起来,然后用,分割。
例子三(支持导出换行的文本不乱码,需要csv格式才行,推荐):
1 | # 用union all查列名,FIELDS TERMINATED BY 和ENCLOSED BY把每个字段的数据包起来 |
命令行直接导入Excle文件
使用命令load data local infile
设置客户端加载功能,并选择数据库
若不设置,会出现Loading local data is disabled; this must be enabled on both the client and server sides错误。
按顺序执行下面的命令即可:
1 | # 登陆MySQL |
导入命令
语法:load data local infile ‘文件路径(左划线分割)’ into table 数据库表名;
例子:
1 | load data local infile 'd:/export/t_achievement_company_map.xls' into table t_achievement_company_map; |
使用命令mysqlimport
在my.ini文件中新增下面的配置,重启MySQL
参考前文
导入命令
使用命令mysqlimport时文件名必须和数据库里面表名一样。
语法:mysqlimport -uroot -p 数据库名 文件路径(左划线分割)
例子:
1 | C:\Users\liquanhong> mysqlimport -uroot -p reward_testdb d:/export/t_achievement_company_map.xls |
详细语法参考官网
写了这么多,还是数据库连接工具香啊😂