【问题标题】:Permission denied while exporting csv file from mySQL (MariaDB) to targeted folder将 csv 文件从 mySQL (MariaDB) 导出到目标文件夹时权限被拒绝
【发布时间】:2018-06-07 07:00:24
【问题描述】:

我的理解是,默认情况下,从MariaDB 导出文件(例如 csv)仅限于指定文件夹。因此,到目前为止,我一直在访问 tmp 文件夹中的导出文件。我想问是否有办法将其更改为另一个文件夹,即/home/user/projects?我使用 Raspbian Stretch 作为我的操作系统。作为我的SQL database 的root 用户,我检查了我是否拥有完全授予权限。

+---------------------------------------------------------------------+
| Grants for root@localhost                                           |
+---------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION |
| GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION       |
+---------------------------------------------------------------------+

但是,当我使用 MariaDB [mydatabase]> SELECT * from table1 into outfile '/home/user/projects/file1.csv'; 进行查询时,我收到此错误:

ERROR 1 (HY000): Can't create/write to file '/home/user/projects/file1.csv' (Errcode: 13 "Permission denied"),

我还能做些什么来将我的文件导出到我选择的文件夹中吗?

更新:到目前为止,我尝试了 chmod 755 和 777 方法并在 SQL 客户端中创建了一个新用户,并授予了完全权限和文件(然后以该用户身份登录以进行查询),但没有成功。

【问题讨论】:

  • 我正在使用 Raspbian Stretch 操作系统。尝试将文件输出到home/pi/projects 时,我在 mySQL 程序中收到拒绝权限响应。但是,将文件导出到tmp 文件夹时没有问题。
  • 请提供ls -ld /home/user/projects/的输出

标签: mysql database raspberry-pi mariadb


【解决方案1】:

我遇到了同样的问题,并设法通过将数据导出到:

 '/var/tmp/file1.csv'

我是这样登录mariadb的:

sudo mysql -u root -p

希望对你有帮助!

【讨论】:

  • 这也适用于我。出于某种原因,我似乎无法在任何地方创建具有授予 mysql/mariadb 写访问权限的新文件夹,但 /var/tmp 似乎具有必要的权限。
【解决方案2】:

这是一个操作系统目录权限问题。将所有权更改为 mysql 并尝试。

【讨论】:

  • 如何更改所有权?有可以编辑的文件吗?
  • chown mysql:mysql /home/pi/projects/ 并尝试。如果这不起作用,请更改权限。 chmod 755 /home/pi/projects/ 并尝试。希望这会有所帮助。
  • 好的,我已经尝试了chown mysql:mysql /home/pi/projects/sudo chown mysql:mysql /home/pi/projects/ 并启动了mysql 客户端,但是将文件输出到该文件夹​​的查询仍然不起作用。我仍然收到ERROR 1 (HY000): Can't create/write to file '/home/pi/projects/file1.csv' (Errcode: 13 "Permission denied") 更改权限是什么意思?
  • chmod 777 /home/pi/projects/ 也不适合我。我也在这里尝试了解决方案:stackoverflow.com/questions/6091427/…,在这里我创建了另一个用户(pi)并授予了所有和文件权限,然后以 pi 用户身份再次登录 mysql 客户端,并进行了相同的查询,但仍然没有成功。
  • 好的。您可以检查以下文件中的条目吗? cat /etc/apparmor.d/usr.sbin.mysqld
猜你喜欢
  • 1970-01-01
  • 2011-10-01
  • 2016-01-01
  • 2023-01-11
  • 2019-09-19
  • 1970-01-01
  • 1970-01-01
  • 2015-05-14
相关资源
最近更新 更多