【问题标题】:How to give SUPER privileges to remote user in mysql?如何在mysql中给远程用户超级权限?
【发布时间】:2020-04-26 15:17:57
【问题描述】:

我在服务器中有一个 MySQL 数据库。我想插入一些 .csv 格式的数据。连接远程数据库后,我尝试执行下面的 SQL 语句。

LOAD DATA LOCAL INFILE '~/Downloads/words.csv'
INTO TABLE word
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS;

结果是错误:

此 MySQL 版本不允许使用的命令

做了一些研究后,我了解到我必须启用 local-infile 才能将 csv 导入表。为了将 local-infile 设置为 1,我执行以下语句:

SET GLOBAL local_infile = 1;

结果是错误:

错误 1227 (42000):访问被拒绝;你需要(至少一个) 此操作的超级权限

当我尝试使用以下语句向远程用户授予所有权限时

GRANT ALL PRIVILEGES ON *.* TO username@host;

我明白了,

您不能使用 GRANT 创建用户

即使我以 root 身份登录。我需要做什么?

【问题讨论】:

  • 如果远程用户不存在,他们如何能够连接到数据库并尝试执行LOAD DATA 命令?

标签: mysql


【解决方案1】:

在授予用户之前创建用户;

CREATE USER username@host IDENTIFIED BY 'some password'
GRANT ALL PRIVILEGES ON *.* TO username@host;

【讨论】:

  • 我想知道如果用户不存在,用户如何能够执行第一个查询并获得权限错误。
  • 远程用户已经存在。当我以远程用户身份登录时,我可以执行 SELECT、INSERT 语句。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-12-07
  • 1970-01-01
  • 1970-01-01
  • 2014-06-03
  • 1970-01-01
  • 2011-05-06
  • 1970-01-01
相关资源
最近更新 更多