我正在分离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 (...)
。
答案 0 :(得分:0)
授予用户授权后,您应使用 FLUSH PRIVILEGES;
您需要FLUSH权限才能完成此过程。
〜ķ