Mariadb主机在“localhost”上工作,但不在IP替代 - 127.0.0.1

时间:2017-12-19 18:27:06

标签: mysql mariadb

我正在尝试使用sequel pro通过灰隧道连接到我的数据库,但它无法正常工作并强制我在输入" localhost"时使用127.0.0.1如果我在命令行上运行会导致问题:

 mysql --host "localhost"

它有效

如果我跑:

 mysql --host "127.0.0.1"

我收到拒绝访问错误:

  

ERROR 1698(28000):拒绝访问用户&root;' @' localhost'

发生了什么事?

我试过了: update user set host='%' where host='localhost' 但这不起作用。

2 个答案:

答案 0 :(得分:1)

许多SQL服务器对于可能通过localhost或remote进入的每个用户都有两个或更多不同的用户条目。 (127.0.0.1算作远程)。

例如,对于root用户,您可能拥有这三个用户条目。

 CREATE USER 'root'@'localhost' IDENTIFIED BY REDACTED;
 CREATE USER 'root'@'127.0.0.1' IDENTIFIED BY REDACTED;
 CREATE USER 'root'@'%.example.com' IDENTIFIED BY REDACTED;

除了在安装MySQL时已经授予了很多权限之外,名称root没什么特别之处。无论您创建什么,都需要向其他版本的root授予相同的权限。

答案 1 :(得分:0)

我创建了一个新用户:

CREATE USER 'non-root'@'localhost' IDENTIFIED BY '123';

然后授予他们所有相同的权限:

GRANT ALL PRIVILEGES ON * . * TO 'non-root'@'localhost';

然后删除root并将non-root重命名为root

现在它终于奏效了。