我试图使用sequel通过灰隧道连接到我的数据库,但它不起作用,并且迫使我在输入"localhost“时使用127.0.0.1,这会导致在命令行上运行的问题:
mysql --host "localhost"它起作用了
如果我跑:
mysql --host "127.0.0.1"我收到拒绝访问的错误:
错误1698 (28000):拒绝用户'root'@'localhost‘的访问
怎么一回事?
我试过了:update user set host='%' where host='localhost',但这不起作用。
发布于 2017-12-19 20:07:00
许多SQL服务器对于可能通过本地主机或远程进入的每个用户都有两个或更多不同的用户条目。(127.0.0.1算作远程)。
例如,对于根用户,您可能有这三个用户条目。
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;名称root没有什么特别之处,只是它在安装MySQL时被授予了很多特权。您需要将相同的权限授予其他版本的root@,不管您创建什么。
发布于 2017-12-19 20:01:21
我创建了一个新用户:
CREATE USER 'non-root'@'localhost' IDENTIFIED BY '123';然后给予他们同样的特权:
GRANT ALL PRIVILEGES ON * . * TO 'non-root'@'localhost';然后删除根并将non-root重命名为root。
现在终于起作用了。
https://stackoverflow.com/questions/47893094
复制相似问题