簡體   English   中英

如何使用php連接到谷歌雲SQL實例?

[英]How to connect to Google cloud SQL instance using php?

使用以下代碼可以從本地主機環境連接到我的 SQL 實例,但是當我將相同的代碼上傳到我的 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);
}
?>

請幫忙,謝謝。

如果您在 GCP 之外擁有 PHP(計算 VM、App Engine 等),您可以在應用服務器中安裝雲代理,並且您的應用將連接,就像數據庫位於 localhost 中一樣,或者您可以使用公共 IP 設置(我建議以這種方式使用代理,您不必使用將公共 IP 附加到您的 SQL 實例)

如果 PHP 應用程序托管在 GCP 中,您可以按照應用程序所在服務的步驟進行操作

如何從 Compute Engine 連接到 Cloud SQL 內部 IP 地址 (PHP)

您的 Compute Engine 實例必須與您的 Cloud SQL 實例位於同一區域,並且位於為專用連接配置的網絡上

1. 使用內部 ip 地址創建 Cloud SQL實例。 創建用戶、密碼和數據庫。

2. Compute Engine 上的 PHP 入門

復制startup-script.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

在我們添加的范圍上sql-admin ,然后創建防火牆規則。

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.將你的代碼添加到router->get('/', function (Request $request)

8.在瀏覽器中訪問http://compute-engine-instance-externall-ip

成功!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM