MySql Select 导出数据到文件
select ...
into outfile '/tmp/path' FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '
';
一般的如果mysql账号不是root,可能会提示没有权限执行这个SQL语句,这时候可以使用
grant file on *.* to username;
flush privileges;
语句给用户赋权
导出到/tmp 目录后,使用PHP下载,可能会提示没要找到文件,需要修改配置
cd /lib/systemd/system/
vi php-fpm.service
//修改 PrivateTmp=false 位true
之后重启php-fpm
systemctl restart php-fpm.service
这是因为 你的sql文件导出到/tmp/ 下,其实对于php-fmp 他的路径是/tmp/…php-fpm…/tmp/ 下
最后,使用下来php代码下载csv
$aFileName = "/tmp/{$fileName}.csv";
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename=' . $aFileName);
header('Content-Transfer-Encoding: binary');
header('Content-Length: ' . filesize($aFileName));
readfile($aFileName);
select into outfile 默认导出的是utf-8格式的csv文件,使用记事本转为gb2312,再使用excel的导入功能导入后使用。