美文网首页
将mysql查询导出csv文件

将mysql查询导出csv文件

作者: 万州客 | 来源:发表于2020-11-18 11:09 被阅读0次

    网上很普通的方案,核心都是使用INTO OUTFILE关健字语句来达成。如何玩出花来?因为有可能mysql是别人运维,而自己只有一个普通的mysql用户登陆,哪能办?不同的mysql版本,操作方式还是不一样的,关键看show global variables like '%secure_file_priv%';命令输出

    零,一些说法

    select * from user into outfile '/tmp/user.csv' fields terminated by ',' optionally enclosed by '"' lines terminated by '\r\n';
    以上命令在mysql5.6下运行没有问题,但在mysql5.7下运行则出现了以下错误。

    ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

    查看官方文档,secure_file_priv参数用于限制LOAD DATA, SELECT …OUTFILE, LOAD_FILE()传到哪个指定目录。

    secure_file_priv 为 NULL 时,表示限制mysqld不允许导入或导出。
    secure_file_priv 为 /tmp 时,表示限制mysqld只能在/tmp目录中执行导入导出,其他目录不能执行。
    secure_file_priv 没有值时,表示不限制mysqld在任意目录的导入导出。

    一,更改mysql配置并重启

    命令show global variables like '%secure_file_priv%';输出如下:

    mysql> show global variables like '%secure_file_priv%';
    +------------------+-------+
    | Variable_name    | Value |
    +------------------+-------+
    | secure_file_priv | NULL  |
    +------------------+-------+
    1 row in set (0.00 sec)
    

    打开my.cnf 或 my.ini,加入以下语句后重启mysql,具体位置百度吧,我没有使用此方式,没有root管理和启停权限呀。
    secure_file_priv=''

    二,导出csv文件到指定位置

    最新版本的mysql 5.7.31,就有一个默认的配置位置。
    命令show global variables like '%secure_file_priv%';输出如下:

    mysql> show global variables like '%secure_file_priv%';
    +------------------+-----------------------+
    | Variable_name    | Value                 |
    +------------------+-----------------------+
    | secure_file_priv | /var/lib/mysql-files/ |
    +------------------+-----------------------+
    1 row in set (0.01 sec)
    

    三,我的mysql的csv导出语句

    还带了个联表查询,对于我这样的生手,不容易咯~~
    SELECT d.version, d.env, a.name, d.cmdb, d.add_date from deployhistory d JOIN App a on d.app_id=a.id WHERE d.env = 'PRD' and d.add_date >'2020-10-17' INTO OUTFILE '/var/lib/mysql-files/tmp2020.csv' fields TERMINATED BY ',' LINES TERMINATED BY '\r\n';

    相关文章

      网友评论

          本文标题:将mysql查询导出csv文件

          本文链接:https://www.haomeiwen.com/subject/jqaqiktx.html