导出 sql 个结果遇到权限问题

exporting sql results having trouble with permissions

我在导出 sql 结果时遇到了 mariadb 的权限问题。

select * from referalList
INTO OUTFILE '/home/joe/testOutFileReferalList.csv';


SQL Error [1] [HY000]: (conn=63) Can't create/write to file '/home/joe/testOutFileReferalList.csv' (Errcode: 13 "Permission denied")

我正在使用 DBeaver 作为前端。但是,我使用 cli 得到了相同的结果,但是我登录了:

sudo mysql -u root -p 须藤 mysql -u 乔 -p mariadb -u 乔 -p 等等

带或不带 sudo...

然后,在没有路径的情况下,sql 运行 将文件放入 /var/lib/mysql/referals/(referals 是我的数据库的名称)。

select * from referalList
INTO OUTFILE 'testOutFileReferalList.csv';

它是使用 o mysql:mysql 权限创建的 我必须更改我导出的每个 SQL 结果的权限。我怎样才能获得成为我的权限,即 joe:joe?以及如何将文件导出到我喜欢的任何地方,例如我的主目录 ~?

另外,有什么方法可以让 mariadb 覆盖已经存在的文件?

mariadb 版本是 服务器版本:10.6.5-MariaDB-1:10.6.5+maria~focal mariadb.org 二进制分发 我在 Linux Ubuntu 20.04.4

谢谢,

SELECT INTO outfile 通常用于将服务器上的一个table输出到一个文本文件中。这是直接在服务器上完成的,这就是为什么服务器 运行 下的用户必须对文件具有适当的访问权限。

在文本文件的客户端输出一个table最简单的方法是使用命令行客户端:

$> mysql -ujoe -pjoe yourdb -e "SELECT * FROM referalList" > /home/joe/testOutFileReferalList.csv