gpt4 book ai didi

mysql - 对文件的查询输出给出拒绝访问错误

转载 作者:IT老高 更新时间:2023-10-29 00:05:45 30 4
gpt4 key购买 nike

我正在尝试使用以下查询将 MySQL 中 SQL 查询的输出捕获到文本文件中。

select count(predicate),subject from TableA group by subject into outfile '~/XYZ/output.txt';

我收到以下错误。

ERROR 1045 (28000): Access denied for user 'username'@'%' (using password: YES)

任何想法,我哪里错了?是权限相关的问题吗?

最佳答案

Outfile在mysql中是自己的权限。

如果你拥有所有的东西,它就包括在内。

但是,如果您只有一个安全集合,例如 SELECT、INSERT、UPDATE、DELETE、DROP、CREATE,但没有 OUTFILE,则“into outfile”在查询中将不起作用。

这样做的原因是,从 MySQL 内部访问文件,即使是出于写入目的,也存在一定的安全风险,因为如果从 mysql 访问文件,则可以访问 mysql 用户有权访问的任何文件,从而绕过基于用户的文件权限。

要解决这个问题,您可以将查询直接运行到您用来运行 sql 的任何 shell/语言的输出中。

这是一个 *nix 示例

>$ echo "select count(predicate),subject from TableA group by subject"  | mysql -u yourusername -p yourdatabasename > ~/XYZ/outputfile.txt

但是在没有“\”的情况下在一行上完成所有操作,或者使用“\”来转义换行符。

这里发生的事情是,您在 mysql 客户端中运行一个查询,它吐出结果,然后您将输出定向到一个文件。所以这个文件永远不会从 mysql 中调用,它是在 mysql 运行之后调用的。

因此,使用 mysql 获取信息,然后从您自己的用户 shell 将数据转储到文件中,这样就没问题了。

或者想办法让自己获得 outfile mysql 权限,无论哪种方式。

关于mysql - 对文件的查询输出给出拒绝访问错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/668618/

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