最方便的还是用工具导出
mysql命令行导出,windows和linux都行,下面以windows为例:
登录mysql
1.查看导出权限
5.0mysql默认是不给导出数据到文件的,8.0有默认导出路径,我们可以查看secure_file_prive的路径
SHOW VARIABLES LIKE “%secure%”;
可以看到secure_file_prive的值,大概有三种
secure_file_prive=null,不允许导出文件
secure_file_priv=/path/ ,只允许导出到指定路径
secure_file_priv="" ,允许导出到任何路径
我们可以进入打开mysql的配置文件进行修改
Windows版可以打开my.ini,Linux打开/etc/my.cnf,在里面修改或添加secure_file_priv的值
8.0把路径注释掉,新写一个更保险
5.0本身没有secure_file_priv参数,添加上去就行
修改完重启mysql服务
重启服务之后再登录mysql执行show variables like “%secure%”;查看是否已经修改成功
导出csv文件,不带表头
fields terminated by描述字段的分隔符,默认情况下是tab字符(\t)
enclosed by描述的是字段值的括起字符。下面sql里没有括起字符
escaped by描述的转义字符。默认的是反斜杠(backslash:\ )
lines terminated by : 行与行之间的分隔
我用的sqlyog执行的,路径需要\\,navicat可能用\就行,只要不报路径不存在就行
SELECT * FROM test INTO OUTFILE "E:\\test\\a.csv" FIELDS TERMINATED BY "," ENCLOSED BY ''
LINES TERMINATED BY '\n'
注意
csv文件不能提前存在,否则报错
导出的路径数据库需要有权限访问,不然报错:访问受限
查询结果导出为xls
xlsx也可以,如果xlsx文件打不开,是安装过wps的原因,需要修改注册表。
excle类型可以省略后面的参数,证明excle为默认类型
SELECT `Stars`,COUNT(`Variety`) FROM `rating` GROUP BY `Stars` INTO OUTFILE "E:\\MySQL\\MySQL Server 8.0\\Uploads\\c.xls"
使用mysqldump导出
相当于备份,spj是库名,s是表名
mysqldump -uroot -p123456 spj s> C:\backup\s.sql
使用mysql命令导出
mysql spj -uroot -p123456 -e “select * from s;” > C:\backup\s.txt