php - 为什么我使用 ipv6 从本地 php 应用程序引擎开发连接到云 sql 失败?

标签 php mysql google-app-engine mysqli google-cloud-sql

所以我想使用它的免费 ipv6 地址连接到 google cloud sql 实例,而不是购买 ipv4 地址。为此,我查看了 ip 我的 ipv6 地址并允许它。我还查找了我的路由器 ipv6 前缀并允许它(afaik 应该允许我家庭网络中的所有 pc 访问 sql 实例)。

以下代码会产生问题:

$servername = "2001:6532:1234:1:6a4f:e1d7:5d69:52a3";
$username = "looooool";
$password = "superSecretStuff";
$dbname = "myDB";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);

该代码会产生此错误:

Warning: mysqli::mysqli(): php_network_getaddresses: getaddrinfo failed: Der angegebene Host ist unbekannt. in C:\Users\kjh\Documents\SF WEBSITE\appengine-try-php-master\connect_db.php on line 8

Warning: mysqli::mysqli(): (HY000/2002): php_network_getaddresses: getaddrinfo failed: Der angegebene Host ist unbekannt. in C:\Users\kjh\Documents\SF WEBSITE\appengine-try-php-master\connect_db.php on line 8
Connection failed: php_network_getaddresses: getaddrinfo failed: Der angegebene Host ist unbekannt.

很抱歉,错误消息是德语的,但我什至不知道在哪里更改它。此外,第 8 行是带有 $conn = new mysqli($servername, $username, $password, $dbname); 的行。我已经更改了 IP 地址,所以如果它看起来很奇怪,这就是原因。希望你能帮助我。

Ninja 编辑:如果我从谷歌获得 IPv4 地址,它可以正常工作。

最佳答案

我发现一些 ISP(互联网服务提供商),尤其是那些专注于住宅客户的 ISP,在为他们的客户分配和持久化 IPv6 地址和范围方面非常随意——而对于 IPv4,更容易知道在哪里一个代表(通常需要为持久的静态 IPv4 地址支付一笔可选费用——如果您不支付该费用,那么默认情况下您将获得一个动态 IPv4 地址,并且您知道 有责任随时更改)。我已经通过使用 whatismyip.com 等多种服务验证了这种不当行为。因此,我无法从我的家庭网络(通过 AT&T)可靠地使用 Cloud SQL,而我在办公室没有问题(静态 IP 地址,v4 或 v6 都可以正常工作)。

您可能想再问一次有关 serverfault 的问题,因为它完全是关于网络管理,而不是关于软件开发(尤其是关于 Cloud SQL)——包含有关您可以使用哪些 ISP 的所有详细信息,并专注于“如何通过给定的 ISP 获得可预测的、非流动变化的 IPv6 外部可见地址”(对于 AT&T,我已经放弃了这个任务,至少现在是这样)。

关于php - 为什么我使用 ipv6 从本地 php 应用程序引擎开发连接到云 sql 失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33974173/

相关文章:

php - 如何删除 PHP 中的 CURL 时间限制?

google-app-engine - 使用 Google App Engine for Java 的 ClassNotFoundException

python - 由于无法进行就绪检查,因此Google App Engine部署失败

python - Google App Engine TextProperty 和 UTF-8 : When to Encode/Decode

php - 从 MySQL 查询对象中获取列名 (PHP)

php - 从三个变量创建插入语句

PHP Mailer 错误 : Message could not be sent. Mailer Error: SMTP connect() failed

mysql - 如何连接其他Mysql服务器

php - 使用包含空值的数组执行 PDO

php - 带有 LEFT JOIN 和 GROUP 问题的 MySQL SELECT