CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost' WITH GRANT OPTION;
但是当我尝试从PHP连接时:
mysql_connect("localhost", "newuser", "password");
对于新用户我得到:
Access denied for user 'newuser'@'localhost' (using password: YES)
但root连接成功。
为什么'newuser'无法连接?
奇怪,但是当mysql_connect显示错误时,用PDO我可以成功连接。 也许PHP版本5.4.13有一些mysql_connect函数的问题。
已解决:开发人员使用mysql_connect(“127.0.0.1”,“newuser”,“evtevtetv $ q”);并且php将evtevtetv * $ q *识别为变量。
答案 0 :(得分:1)
如果你试试这个怎么办?
CREATE USER 'newuser';
GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
答案 1 :(得分:1)
试试这个
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost' WITH GRANT OPTION;
WITH GRANT OPTION意味着您授予该权限的用户可以进一步授予该权限。
我们从不在创建用户命令
中使用它答案 2 :(得分:1)
您可以通过命令行连接吗?像这样
mysql -u newuser -p
如果可以,那么PHP可能会出现问题。
有时您需要重启MySQL才能使更改生效。
与Alexey一样,请尝试从查询中删除@'localhost'
以创建用户名,因为这可能会导致问题。
您还应该确保通过以root用户身份(mysql -u root -p
)登录MySQL并确定用户是否存在SELECT * FROM mysql.user;
并确定用户名是否存在来实际创建用户如果权限是正确的。