使用 Google Cloud SQL

1. 创建数据库

从侧边栏进入 SQL 界面

image-20240810151843016

点击创建实例,并选择一个数据库。这里以 PostgreSQL 为例:

image-20240810152009012

接着按照内存需求(主要受价格影响),选择 Edition preset、数据库版本、实例 ID、密码,区域等。

需要注意的是价格比较昂贵,需要时刻关注自己的配置每小时的价格是多少。

image-20240810152406234

确认自己能接受的配置后,点击创建实例,等待几分钟后实例创建成功:

image-20240810152915323

创建成功后,会有一个公共 IP 地址,后续我们将通过此 IP 连接到数据库。

为了安全起见,我们最好再配上 SSH ,用 SSH 的方式连接数据库。

2. 创建虚拟机

使用 SSH 的方式连接数据库需要用到一个虚拟机作为 SSH 的跳板。

首先通过侧边栏进入 Compute-Engine 来创建虚拟机。

点击创建实例:

  1. 选择区域,虚拟机区域不可更改,最好与数据库区域一致。
  2. 服务账号,可以默认,也可以设置为你想要能够访问到虚拟机的服务账号。
  3. 防火墙选择允许 HTTPS 和 允许 HTTP 流量。

确认价格后,点击创建实例,然后等待成功。

3.连接虚拟机

我们可以通过点击实例旁边的 SSH 按钮用浏览器的方式连接到虚拟机。

image-20240810154224089

打开后是这样的:

image-20240810154250687

如果我想要从本地连接虚拟机,可以做到吗?当然可以!

拷贝自己的 publish key

shell
1cat ~/.ssh/id_rsa.pub | pbcopy

进入 Compute Engine 的元数据,将拷贝后的 publish key 粘贴到 SSH 密钥中。

image-20240810160925032

保存后,你可以得到自己的用户名

image-20240810161013676

接着用以下命令连接

shell
1ssh -i ./.ssh/id_rsa <YOUR_USER_NAME>@<YOUR_VM_IP_ADDRESS>

例如我的:

shell
1ssh -i ./.ssh/id_rsa 2903358870@35.221.69.117

其中 -i 用来指定你的 private key 的 path。

image-20240810161604554

现在已经成功进入到虚拟机了。

如果你使用 VPN,那么有可能会在这一步失败。请注意修改 VPN 的站点配置或者其他网络设置。

4. 通过虚拟机连接数据库

现在我们已经能够在本地连接虚拟机了,下一步就是利用虚拟机当跳板,连接到 Google VPC 网络中的数据库实例。

再次进入 Cloud SQL,进入实例,点击连接,并将虚拟机的 IP 添加到授权网络中。

image-20240810211235294

点击完成并且保存。

最后使用 TablePlus 连接实例:

image-20240810211924590

SQL 实例的 IP 地址可以通过实例详情拿到。

用户名和数据库名查看位置:

image-20240810212127290

用户密码则是在创建实例时用户自己设置的,如果忘记了,也可以在这里修改密码:

image-20240810212237730

5. 通过授权 IP 直连数据库

有些同学可能会问了,使用 SSH 直接连接数据库,还需要配置虚拟机,实在太麻烦,有没有方便的方法直接连接数据库呢?

答案是肯定的,我们可以直接将自己的 IP 填入到授权网络中,这样就可以让本机连接数据库。

通过这个网站获取自己的 IP 地址:https://api.ipify.org/

再通过这个网站得到自己 IP 的 CIDR 范围:https://www.vultr.com/resources/subnet-calculator/

将 CIDR 范围填入到授权网络中。

image-20240810212834610

保存后等待实例修改完成,就可以通过 TablePlus 连入了。