【问题标题】:MariaDb access to file systemMariaDb 访问文件系统
【发布时间】:2018-04-13 21:33:41
【问题描述】:

我正在尝试将 CSV 文件读入 MariaDb 并收到一条错误消息,显示“权限被拒绝”。你能告诉我我做错了什么吗(见下文)?

我在 OSX High Serra 上运行 MariaDb 10.2.6。我以 'root'@'localhost' 身份登录 MariaDb。我已授予 'root'@'localhost' 文件权限。用户 'root'@'localhost' 正在使用安全插件 'unix_socket'。

我使用 CONNECT 存储引擎创建了一个表,如下所示:

create table twins (
  ABOT double,
  SCLK double,
  LMST varchar(30),
  LTST varchar(30),
  UTC varchar(30),
  HORIZONTAL_WIND_SPEED double,
  VERTICAL_WIND_SPEED double,
  WIND_DIRECTION double,
  AIR_TEMP double)
engine=CONNECT table_type=CSV file_name='twins_calib_8066_01.csv'
header=1;

我要读取的文件的权限是:

-rw-r--r--   1 ssackett  everyone    873837 Mar 20 11:29 twins_calib_8066_01.csv

当我发出 SQL 时:select * from twins;

我收到错误消息:

错误 1296 (HY000):从 CONNECT 收到错误 174 'Open() error 13 on twins_calib_8066_01.csv: Permission denied'

【问题讨论】:

  • 比尔,谢谢。我试过 chmod 666 现在所有文件都有 RW 权限。我仍然得到同样的错误。在这一点上,我最好的猜测是 OSX 正在尝试对用户 'root'@'localhost' 进行身份验证,就好像它是主机上的一个帐户一样。到目前为止,虽然没有任何效果。
  • MariaDb 文件权限的文档除其他外说:“MariaDB 服务器必须具有访问这些文件的权限。”你能告诉我如何设置 MariaDB 以便服务器具有“访问这些文件的权限”吗?

标签: mysql file mariadb


【解决方案1】:

CSV 存储引擎不允许 UPDATE 或 DELETE,但允许 INSERT,因此 mysqld 需要对文件有写权限,否则无法打开。

但您的 CSV 文件归 ssacckett 所有,而不是“mysql”(或您的 mysqld 运行的任何 uid),因此 mysqld 进程无法写入。

试试:

sudo chown mysql:mysql twins_calib_8066_01.csv

将其更改为mysqld进程运行的用户和组。

或者,将文件模式更改为所有人可写:

chmod 666 twins_calib_8066_01.csv

【讨论】:

    【解决方案2】:

    检查包含 .csv 文件的目录的权限。您需要对该目录具有“搜索”(x) 权限才能查看其中的文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-11
      • 1970-01-01
      • 2020-04-25
      • 1970-01-01
      • 1970-01-01
      • 2011-06-28
      • 1970-01-01
      • 2021-04-16
      相关资源
      最近更新 更多