MySQL身份验证&在不同的盒子上使用PHP服务器的权限

时间:2012-03-15 17:54:55

标签: php mysql authentication authorization

我正在分离PHP Web服务器并将我的MySQL数据库移动到另一个框。实际上是AWS上的两个实例。

我可以作为用户连接到新的MySQL框,但不能执行任何查询。

关于MySQL:

CREATE USER 'username'@'ip address' IDENTIFIED BY 'password';
GRANT ALL ON dbname.* TO 'username'@'ip address' IDENTIFIED BY 'password';

**更改为GRANT ALL进行测试,以确保没有限制问题

验证用户

mysql> SELECT user, host, password FROM mysql.user;
| username | ip address   | *... |

mysql> show grants for 'username'@'ip address'
+-----------------------------------------------------------------------------------------------------------------+
| Grants for username'@'ip address                                                                                   |
+-----------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'username'@'ip address' IDENTIFIED BY PASSWORD '*...' |
| GRANT ALL PRIVILEGES ON `dbname`.* TO 'username'@'ip address'                                                     |
+-----------------------------------------------------------------------------------------------------------------+

当我尝试打开一个从db中提取信息的PHP页面时,我得到了

Invalid authorization specification: 1045 Access denied for user 
   'username'@'ip address' (using password: YES)

在同一个盒子上一切正常工作,我知道用户正在从网络连接到数据库服务器,因为在我打开数据库盒子上的端口之前这不起作用。我知道MySQL身份验证在验证凭据时会运行一个过程,但我无法对其进行跟踪。

我还需要做其他一些过程吗?

更新

这个新的数据库框没有my.cnf文件所以我创建了它,重新启动MySQL就好了。如果我添加bind-address = ip address,则MySQL将无法启动,我收到错误Starting MySQL... ERROR! The server quit without updating PID file (...)

1 个答案:

答案 0 :(得分:0)

授予用户授权后,您应使用 FLUSH PRIVILEGES;

您需要FLUSH权限才能完成此过程。

〜ķ