-2
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连接成功。

为什么“新用户”无法连接?

它很奇怪,但是当 mysql_connect 显示错误时,使用 PDO 我可以成功连接。也许 PHP 版本 5.4.13 的 mysql_connect 函数有一些问题。

已解决:开发人员使用 mysql_connect("127.0.0.1", "newuser", "evtevtetv$q"); 和 php 将 evtevtetv* $q * 识别为变量。

4

3 回答 3

1

如果你试试这个呢?

CREATE USER 'newuser';
GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
于 2013-03-26T16:48:28.203 回答
1

尝试这个

CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost' WITH GRANT OPTION;

WITH GRANT OPTION 意味着您授予权限的用户可以进一步授予它。

我们从不将它与创建用户命令一起使用

于 2013-03-26T16:48:29.567 回答
1
  1. 可以通过命令行连接吗?像这样

    mysql -u newuser -p 
    

    如果可以,那么它可能是您的 PHP 的问题。

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

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

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

于 2013-03-26T16:55:34.193 回答