0

这是我在使用 php 代码时遇到的错误

"mysql_connect($host,$user,$password)", where $host="IP_of_my_system"

Warning: mysql_connect(): Host 'xxx' is not allowed to connect to this MySQL server in C:\xampp\htdocs\mysqltest\insert.php on line 4

但是当使用 localhost 而不是 IP 时,它可以正常工作。

为什么会出现这种行为?

4

4 回答 4

1

如果您了解 Userid 在 MySQL 中的工作原理,这非常简单。

每个用户 ID 都有一个与之关联的位置,该用户 ID 可以从该位置登录。这通常可以是from anywhere %一个 IP 地址或一组 IP 地址。

因此,您使用的用户 ID 可能设置为允许访问,localhost并且127.0.0.1可能::1所有这些都是寻址运行 MySQL 服务器的 PC 的方式。

这些应该就足够了,因此使用localhost127.0.0.1更改 MySQL 中的用户标识定义以允许从192.168.0.99或任何您的 ip 地址访问,但使用别名之一this PC应该是您所需要的。alias's当您将代码移动到另一台机器和/或 MySQL 服务器时,使用也有帮助。我 fyou 使用它可能不会使用的特定 IP。

于 2013-07-26T08:21:41.653 回答
0

您的问题的两个可能原因:

1) 您的防火墙阻止 IP_of_my_system:3306

2)你没有在MySql中配置正确的访问权限。

对于第 1 项,请检查您的系统。

对于 #2,在 Workbench 中,作为数据库管理员输入。然后,单击“用户和权限”。在此页面中,您必须授予您的用户(MySQL 用户,而不是 Windows 用户!)从地址或网络登录的权限。此权限是“每个主机”和“每个架构”。在下图中,您可以看到用户“testmvc”可以从任何主机 (%) 和 localhost 登录: MySQL Workbench 用户和权限 - 服务器访问管理

在下图中,您可以看到“Schema Privilege”选项卡: MySQL Workbench 用户和权限 - 模式权限 您可以在其中看到用户“testmvc”,来自任何主机 (%) 都可以使用指定的权限访问“testmvc”模式。

访问权限和权限的组合授予您的用户访问 MySQL 服务器并对其进行操作的权限。

于 2013-07-26T08:14:45.293 回答
0

请在 $hostname 中提及端口号,例如 192.168.0.1:3306(默认为 mysql 端口)。

对于服务器端口,请不要联系您的服务器管理员

于 2013-07-26T07:43:28.217 回答
0

我遇到了类似的问题,唯一可行的解​​决方案是创建一个与旧用户具有相同规格的新用户。奇怪,但希望它可以帮助其他有同样问题的人。

于 2022-02-06T13:47:36.937 回答