由于mysql工具没有很好提供导出大批量数据到csv的方法,所以采用原生的mysqldump导出数据也是一种直接了当的方式。
导出命令:
./mysqldump -uroot -p123456 jd_comments jd_guonei -t -T /data/mysql_back/ --fields-terminated-by='#vtg#'
解释:
jd_comments 数据库名
jd_guonei 表名
-t 不导出create 信息;
-T 参数跟的是目录path,不是文件名,要是secure_file_priv设置的可写目录
如果报错:
mysqldump: Got error: 1290: The MySQL server is running with the --secure-file-priv option so it cannot execute this statement when executing 'SELECT INTO OUTFILE'
解决方式:
先查看secure-file-priv的配置值:show variables like '%secure%';
secure_file_prive=null -- 限制mysqld 不允许导入导出
secure_file_priv=/tmp/ -- 限制mysqld的导入导出只能发生在/tmp/目录下
secure_file_priv=' ' -- 不对mysqld 的导入 导出做限制
如果secure-file-priv为null则需要添加配置
添加secure-file-priv方法:
查看mysql配置文件(如果是yum安装或者安装的lnmp,不确定mysql配置文件位置的情况)
./mysqld --verbose --help | grep -A 1 'Default options'
添加配置:
secure_file_priv=/data/mysql_back/
不要忘记给目录授权:
chown -R mysql:mysql /data/mysql_back/