MySQL 权限通常授予每个用户和客户端主机的每个 IP 地址(从数据库的角度来看,客户端是运行 PHP 应用程序的主机)。
您的 wi-fi 路由器可能正在使用 DHCP 为您的笔记本电脑分配 IP 地址,因此无法保证每次更新连接时它都会为您的笔记本电脑授予相同的地址。
我看到两种可能的补救措施:
一些路由器允许您将特定的 IP 地址与给定的 MAC 地址绑定,这样一台 PC 就可以可靠地获得相同的 IP 地址(这就是我在家庭网络上所做的)。
或者,您可以使用语句打开数据库服务器上的权限,GRANT
以便路由器提供的 DHCP 地址范围内的任何 IP 地址都可以访问数据库。例子:
GRANT ALL ON test.* TO 'databaseuser'@'192.168.1.%' IDENTIFIED BY 'databasepassword';
但是,您不想授予对任何IP 地址的开放访问权限,因为这样更广泛的网络上的任何人都可能联系您的数据库服务器。
更新: 当然 192.168.1.% 是您在防火墙后面使用的内部子网。这只是一个示例,表明您可以对您在GRANT
语句中提供的地址中的任何八位字节使用通配符。
如果您在家中连接,您的互联网提供商可能会分配一个外部 IP 地址,但这可能会经常更改,具体取决于他们的网络管理策略。您可以选择获取一个保证不会更改的静态 IP 地址,但这通常会花费更多。
当然,如果您从咖啡店或机场或其他任何地方连接,您的连接将显示为他们的外部 IP 地址。
当然,最灵活的做法是开放您的 MySQL 权限,以便来自任何 IP 地址的任何客户端都可以连接(假设他们知道用户名和密码)。但该计划的问题在于,来自任何 IP 地址的任何客户端都可以连接- 即即使不是您。