创建mysql用户从PHP连接

时间:2013-03-26 16:36:55

标签: mysql nginx centos php

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 *识别为变量。

3 个答案:

答案 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)

  1. 您可以通过命令行连接吗?像这样

    mysql -u newuser -p 
    

    如果可以,那么PHP可能会出现问题。

  2. 有时您需要重启MySQL才能使更改生效。

  3. 与Alexey一样,请尝试从查询中删除@'localhost'以创建用户名,因为这可能会导致问题。

  4. 您还应该确保通过以root用户身份(mysql -u root -p)登录MySQL并确定用户是否存在SELECT * FROM mysql.user;并确定用户名是否存在来实际创建用户如果权限是正确的。

相关问题