【问题标题】:MySQL into output file errorMySQL进入输出文件错误
【发布时间】:2016-07-13 14:31:58
【问题描述】:

我对 SQL 很陌生,但我必须提取存储在 sql 文件中的表的一些字段。

我已经安装了 mysql 并创建了数据库和源文件。现在我想执行一个 sql 请求,以便读取表的所有 elt,提取感兴趣的字段并将它们写入 cvs 文件:

SELECT * INTO OUTFILE '/home/cr/database/Dump2/program_info.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\n' FROM program_info;

运行命令时出现以下错误消息:

ERROR 1290 (HY000): MySQL 服务器使用 --secure-file-priv 选项运行,因此无法执行此语句

有人知道怎么解决吗? 我整个下午都在为这条消息而苦苦挣扎,但不能。

我正在使用 Linux ubuntu,我的配置文件是 /etc/my.cfg

[mysqld] 只读 = 0 安全文件-priv = ""

感谢您的帮助

【问题讨论】:

  • 检查 mysqld 命令行。仅仅因为该指令不在 .ini/.cnf 文件中并不意味着它不能在其他地方指定。
  • 如何“检查 mysqld”? BR
  • ps auxwww|grep mysqld
  • 谢谢你,运行你的命令我有以下输出:mysql 29141 0.1 1.1 1915592 183236 ? Ssl 16:51 0:00 /usr/sbin/mysqld
  • 你用的是什么版本的 MySQL?

标签: mysql csv into-outfile


【解决方案1】:

MySQL 实际上按预期工作。 MySQL 服务器使用 --secure-file-priv 选项启动,该选项基本上限制您将输出保存到随机目录中。需要检查启动参数。

为此,请在 MySQL shell 中运行以下命令:

SHOW VARIABLES LIKE 'secure_file_priv';

输出将是 MySQL 服务器当前认为的允许位置。您应该能够将输出保存到此位置。

要禁用限制,您需要编辑声明它的配置文件并在更改选项后重新启动 MySQL 服务器。

MySQL 可能正在从多个位置读取 my.ini(或 my.cnf)配置文件。请参阅Using Option Files 了解更多信息。

【讨论】:

  • 我的文件正在输出到 secure_file_priv 位置,但是是否可以在该目录中放置 2 个子文件夹并将其输出到那些?目前它给了我一个“权限被拒绝”的消息,但我不确定是否有解决方法,以便我可以将 2 个不同的数据集导出到 2 个位置,因为它们最终仍在 secure_file_priv 目录中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-06-10
  • 1970-01-01
  • 2017-12-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多