这是我在使用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时,它可以正常工作。
为什么会出现这种情况?
答案 0 :(得分:1)
如果您了解Userid在MySQL中的工作方式,那将非常简单。
每个用户标识都有一个与之关联的位置,该用户标识允许从该位置登录。这可以是from anywhere %
,但通常是IP地址或IP地址集。
因此,您正在使用的用户标识可能设置为允许从localhost
和127.0.0.1
进行访问,并且可能::1
所有这些都是解决运行MySQL服务器的PC的方法上。
这些应该足够了,所以使用localhost
或127.0.0.1
或者更改MySQL中的用户ID定义,允许从192.168.0.99
或任何你的IP地址进行访问,但是使用其中一个别名对于this PC
应该是你所需要的。
将代码移动到另一台机器和/或MySQL服务器时,使用alias's
也会有所帮助。我可能不会使用特定的IP。
答案 1 :(得分:0)
请提及$ hostname中的端口号192.168.0.1:3306(默认为mysql端口)。
对于服务器端口,请联系您的服务器管理员
答案 2 :(得分:0)
您的问题的两个可能原因:
1)您的防火墙阻止了IP_of_my_system:3306
2)您尚未在MySql中配置正确的访问权限。
对于项目#1,请检查您的系统。
对于#2,在Workbench中,输入数据库的管理员。 然后,单击“用户和权限”。在此页面中,您必须向您的用户(MySQL用户,而不是Windows用户!)授予从地址或网络登录的权限。此权限是“每个主机”和“每个架构”。在下图中,您可以看到用户“testmvc”可以从任何主机(%)和localhost登录:
在下一张图片中,您可以看到“架构权限”标签: 您可以在其中看到来自任何主机(%)的用户“testmvc”可以使用指定的权限访问“testmvc”架构。
访问权限和权限的组合授予您的用户访问MySQL服务器并对其进行操作。