使用云 sql 作为数据库连接网站计算引擎 VM

Posted

技术标签:

【中文标题】使用云 sql 作为数据库连接网站计算引擎 VM【英文标题】:connect website compute engine VM using cloud sql as database 【发布时间】:2019-07-23 18:18:04 【问题描述】:

我正在开发一个简单的网站,该网站由使用 php 作为后端和 mysql 作为数据库的学生登录数据库组成。一切正常。后来,我想把它托管在 GCP 计算引擎 VM (Linux 18.04) 和云 SQL 上。任何人都可以帮助我了解数据库配置文件以从我的 VM 连接到云 SQL。

<?php
$host = "99.999.999.99";
$user = "root";
$password = "password";
$database = "logindb";
$port = null;
$socket = "/cloudsql/project_id:us-central1:studentlogin"
$con=mysqli_connect($host, $user,$password, $database, $port, $socket)or die ('I cannot connect to the database because: '".mysql_error());
mysqli_select_db ($con,'logindb');
?>

我是如何从另一个 PHP 文件中调用函数的,比如..

<?php
    session_start();
    require_once('dbconfig/config.php');
?>

【问题讨论】:

【参考方案1】:

有几种方法可以使用 GCE 实例连接到您的 Cloud SQL 实例,我将尝试解释所有这些方法:

1.使用Public IP。由于您的用例,这可能是最简单的一个,您的 PHP 配置看起来正确($port 参数应该是 3306 btw)。要使用公共 IP 连接到您的 Cloud SQL 实例,只需转到 here,选择您的 Cloud SQL 实例,转到“授权网络”,点击添加网络并输入您的 GCE 实例的 IP 地址。

2.使用Private IP。这与上一个类似,但您需要考虑some considerations,然后,您只需编辑您的 Cloud SQL 实例,激活私有 IP 并从您的 GCE 实例连接到它

3.使用Cloud SQL Proxy。要使用此选项,只需关注this documentation。

4.使用Client libraries。但是Cloud SQL client library for PHP 现在处于测试阶段,所以我建议您使用上面列出的一些选项。

【讨论】:

感谢您的回复。我从一开始就尝试使用您的第一个选项,但问题仍然存在。我的索引页面仍未加载。这是我从我的网页This page isn’t working 35.190.138.50 is currently unable to handle this request. HTTP ERROR 500 得到的任何帮助。 我可以从命令行连接和访问我的 sql 引擎。但是 php 脚本无法正常工作。 预期会出现 500 错误,因为您的 Cloud SQL 实例不允许使用端口 80 (HTTP) 提供内容,因此,当您尝试访问 Cloud SQL 实例的公共 IP 时它会显示一个 500 错误。关于来自您的 PHP 脚本的连接,我看不到您的代码有任何问题,您显示的是哪个错误?我了解到您已将 GCE 实例的公共 IP 列入 Cloud SQL 实例的连接部分的白名单,对吗?

以上是关于使用云 sql 作为数据库连接网站计算引擎 VM的主要内容,如果未能解决你的问题,请参考以下文章

简述SQL的执行过程?Linux云计算运维

微软azure云计算在门户中创建 Windows 虚拟机部署web网站

自己在apache+php+sql server下搭建了个网站,要怎么上传到腾讯云呢?腾讯云如何使用,如何购买?

华为云服务器mysql数据恢复过程

是否可以使用 Apache NiFi 作为 MS SQL Server 数据库内计算的数据流引擎?

在使用私有 IP 连接到云 sql 的云构建上运行数据库迁移