我有一个mysql数据库。我可以使用root用户从phpmyadmin连接到数据库。然后我创建了一个新用户。并授予它所有特权。但我无法使用该新用户登录phpmyadmin。
我使用的命令
CREATE USER 'new_user'@'%' IDENTIFIED BY 'abc@123';
GRANT ALL PRIVILEGES ON *.* TO 'new_user'@'%' with grant option;
flush privileges;
**预期的行为:**我应该能够登录phpmyadmin。 **错误:**我收到以下错误。
mysqli_real_connect():( HY000 / 1045):拒绝用户访问 'new_user'@'localhost'(使用密码:YES)
答案 0 :(得分:1)
'%'和'localhost'之间存在差异。
在MySQL中,'%'匹配任何TCP / IP主机。您的错误消息表明您通过套接字连接进行连接('localhost'始终为套接字)。为了允许用户从TCP和套接字连接进行访问,您必须创建两个用户,每个用户对应一种主机类型。如果您知道自己不需要TCP用户,那么只需拥有“socket”用户就可以省去一些麻烦(并在某种程度上提高安全性)。