gpt4 book ai didi

mysql - 使用mysql命令行生成CSV,无法在除/tmp以外的任何其他目录中生成

转载 作者:行者123 更新时间:2023-11-29 23:21:35 26 4
gpt4 key购买 nike

我正在通过 mysql 命令行创建 csv 和 mysql 转储。为了创建 mysql 文件,我可以轻松地在所需目录中创建 .sql 转储

 mysqldump  -u"root" -p"root"  dns packet --where="server_id=1 > /var/www/mydatafile/SQLData.sql

一切正常,但对于 CSV,它仅在 TMP 文件夹中创建文件,无法在任何其他位置创建文件

 mysql -u"root" -p""  dns -e "SELECT * INTO OUTFILE '/var/www/mydatafile/my_csv.csv'  FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n' FROM TABLENAME";

它说

ERROR 1 (HY000) at line 1: Can't create/write to file '/var/www/mydatafile/my_csv.csv' (Errcode: 13)

我已授予 www 目录权限,但仍然给出相同的错误...我可以知道为什么不将 CSV 创建到任何其他位置,而 SQL 可以轻松生成。

最佳答案

您的目录/var/www/mydatafile/必须可由mysql用户(通常mysql)写入。您可以检查文件 my.cnf 中的用户(基于 debian/ubuntu,位于 /etc/mysql/ )。

第一个命令有效,因为您生成 sql 指令到 stdout 并将输出重定向到文件,以便使用当前用户环境。

第二个命令是mysql内部的,因此mysql用户需要正确的权限。

编辑:您也可以 use mysqldump使用如下命令生成 csv:

mysqldump -u"root" -p"root"  dns packet -p -t --fields-terminated-by=, --lines-terminated-by="\r\n"

关于mysql - 使用mysql命令行生成CSV,无法在除/tmp以外的任何其他目录中生成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27244841/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com