如何使用php连接到Google云SQL实例?

如何使用php连接到Google云SQL实例?,php,google-cloud-sql,Php,Google Cloud Sql,使用以下代码,我可以从localhost环境连接到我的SQL实例,但是当我将相同的代码上载到我的VM实例并尝试从中连接它时,会得到“连接失败:连接超时” 注意:我在授权网络部分添加了VM实例的外部IP地址 <?php $servername = "SQL INSTANCE IP ADDRESS : port"; $username = "root"; $password = "password"; $dbname="appdb"; $response=array(); $conn =

使用以下代码,我可以从localhost环境连接到我的SQL实例,但是当我将相同的代码上载到我的VM实例并尝试从中连接它时,会得到“连接失败:连接超时”

注意:我在授权网络部分添加了VM实例的外部IP地址

<?php
$servername = "SQL INSTANCE IP ADDRESS : port";
$username = "root";
$password = "password";
$dbname="appdb";

$response=array();

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

if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
?>


请提供帮助,谢谢。

如果您的PHP不在GCP(计算虚拟机、应用引擎等)中,您可以在应用程序服务器中安装,并且您的应用程序可以像DB在本地主机中一样连接,或者您可以使用(我建议您使用代理,这样您就不必使用将公共IP附加到SQL实例)

如果PHP应用程序托管在GCP中,您可以按照以下步骤操作,了解应用程序的位置

如何从计算引擎连接到云SQL内部ip地址(PHP) 计算引擎实例必须与云位于同一区域 SQL实例,并在为专用连接配置的网络上

一,。具有内部ip地址的实例。创建用户、密码和数据库

二,

复制
启动脚本.sh
后,运行此命令以创建实例:

 gcloud compute instances create $MY_INSTANCE_NAME \
--image-family=ubuntu-1804-lts \
--image-project=ubuntu-os-cloud \
--machine-type=g1-small \
--scopes userinfo-email,cloud-platform,sql-admin  \
--metadata-from-file startup-script=scripts/startup-script.sh \
--zone $ZONE \
--tags http-server
在作用域上,我们添加了
sqladmin
,然后创建防火墙规则

3.SSH到刚才创建的实例

4.安装
mysql
。您可以将此部分添加到启动脚本中

 sudo apt install mysql-client-core-5.7
5.测试是否可以使用内部ip地址连接到SQL实例

mysql --host=internall-ip-sql  --user=test --password
6.如果您能够连接,则:

cd /opt/app/routes
sudo nano web.php
7.将代码添加到
路由器->获取('/',函数(请求$Request)

8.在浏览器中,转到


成功!

外部IP地址?听起来不对,因为数据库通常不会暴露在公共internet上。这是否回答了您的问题?那么我们如何从VM实例连接到sql实例?@MohammedYassineCHABLI我就是这么做的,但仍在进行连接计时out@MohammedYassineCHABLI谢谢,我们应该使用sqli用于连接到sql实例的实例名称。