用于创建数据库并允许远程访问的PHP脚本无效

时间:2013-05-13 20:29:53

标签: mysql database permissions pdo remote-connection

我有2台服务器。 Server A(10.0.0.1)和Server B(10.0.0.2)[不是真正的ips]。 Server A包含用于在远程Server B上创建数据库的脚本。数据库是即时创建的。 Server A上的脚本如下:

$this->dbh->exec("CREATE DATABASE `" . $name . "`;
     CREATE USER '" . $username . "'@'localhost' IDENTIFIED BY '" . $password . "';
     GRANT ALL PRIVILEGES ON `" . $name . "`.* TO '" . $username . "'@'%' IDENTIFIED BY PASSWORD '" . $password . "' WITH GRANT OPTION;
     FLUSH PRIVILEGES;")

此脚本连接到Server B并使用mysql管理员帐户。 这样就可以在Server B上创建用户和数据库了。执行后, 我关闭当前的管理连接并以新创建的用户身份打开一个新连接来创建几个表。 这是当我收到以下错误Fatal error: Uncaught exception 'Exception' with message 'SQLSTATE[28000] [1045] Access denied for user.......;

现在,当我登录我的主机帐户并选择“允许远程连接”时,我可以将服务器A中的查询作为新用户运行。从获取开始我的授权许可似乎有问题。正如您所看到的,我使用通配符%来允许来自任何IP的连接,因此我不确定语句出错的位置。如果需要,我可以提供更多信息。非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

原则上我要做的就是用

替换"'@'%' IDENTIFIED BY PASSWORD '"

"'@'%' IDENTIFIED BY '"不需要“密码”。删除后,我可以远程连接。