在GCP上创建Cloud SQL的三种方式(Console,gcloud,Terraform)

news2025/5/20 1:31:42

1 简介

Cloud SQL 是GCP上的关系型数据库,常用的有三种方式来创建:

(1) 界面操作

(2) 命令行 gcloud

(3) Terraform

在开始之前,可以查看:《初始化一个GCP项目并用gcloud访问操作》。

2 GCP 操作界面

登陆GCP,选择SQL,可以创建MySQL、PostgreSQL和SQL Server:

以PostgreSQL为例,可以选择很多参数:

3 gcloud命令

通过命令行创建也很方便,可以自动化。命令如下:

$ gcloud sql instances create pkslow-testdb \
--database-version=POSTGRES_13 \
--region=us-west1 \
--cpu=1 \
--memory=3840MB \
--authorized-networks="0.0.0.0/0" 

Creating Cloud SQL instance...done.                                                                                                                             
Created [https://sqladmin.googleapis.com/sql/v1beta4/projects/pkslow/instances/pkslow-testdb].
NAME           DATABASE_VERSION  LOCATION    TIER              PRIMARY_ADDRESS  PRIVATE_ADDRESS  STATUS
pkslow-testdb  POSTGRES_13       us-west1-a  db-custom-1-3840  34.83.146.214    -                RUNNABLE

authorized-networks 这个参数很重要,它决定了哪些客户端可以连接上数据库。

设置密码:

$ gcloud sql users set-password postgres \
--instance=pkslow-testdb \
--password=pkpass

给实例创建数据库:

$ gcloud sql databases create billing --instance=pkslow-testdb

Creating Cloud SQL database...done.                                                                                                                             
Created database [billing].
instance: pkslow-testdb
name: billing
project: pkslow

创建完成后,就可以在本地连接了:

连上之后,我们来创建一张表和插入一些数据来测试一下:

CREATE TABLE pkslow_person (
                               name varchar not null,
                                 age int not null,
                                 city varchar not null
);

insert into pkslow_person(name, age, city) VALUES ('Larry', 1, 'GZ');
insert into pkslow_person(name, age, city) VALUES ('pkslow', 2, 'SZ');
insert into pkslow_person(name, age, city) VALUES ('Deng', 21, 'SZ');
insert into pkslow_person(name, age, city) VALUES ('Eason', 13, 'BJ');
insert into pkslow_person(name, age, city) VALUES ('JJ', 43, 'SH');
insert into pkslow_person(name, age, city) VALUES ('Mi', 28, 'HK');

查看数据:

4 Terraform

当然,更好的方式还是通过Terraform来创建:

provider "google" {
  project     = "pkslow"
}

resource "google_sql_database_instance" "instance" {
  name             = "pkslow-postgresql"
  region           = "us-west1"
  database_version = "POSTGRES_13"
  settings {
    tier = "db-f1-micro"

    ip_configuration {
          ipv4_enabled = "true"

          authorized_networks {
            value           = "0.0.0.0/0"
            name            = "allow-all"
            expiration_time = "2099-01-01T00:00:00.000Z"
          }

        }
  }

  deletion_protection  = "true"
}

resource "google_sql_database" "database" {
  name     = "billing"
  instance = google_sql_database_instance.instance.name
}

resource "google_sql_user" "users" {
  name     = "larry"
  instance = google_sql_database_instance.instance.name
  password = "larry.pass"
}

这段代码为会我们创建三个资源:实例、数据库和用户。

准备好代码好,运行下面命令:

$ terraform init -plugin-dir=${TERRAFORM_PLUGIN}

$ terraform plan

$ terraform apply -auto-approve

Terraform还会自动在Bucket上创建文件来管理Terraform的状态:

创建完成后,检查就有两个数据库实例了:

$ gcloud sql instances list
NAME               DATABASE_VERSION  LOCATION    TIER              PRIMARY_ADDRESS  PRIVATE_ADDRESS  STATUS
pkslow-postgresql  POSTGRES_13       us-west1-a  db-f1-micro       34.127.53.161    -                RUNNABLE
pkslow-testdb      POSTGRES_13       us-west1-a  db-custom-1-3840  34.83.146.214    -                RUNNABLE

本地连接如下:

5 代码

代码请查看GitHub: https://github.com/LarryDpk/pkslow-samples

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/158987.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Chevereto V4 首页显示图片托管数量的实现方法

博主最近一直想在Chevereto V4 首页显示图片托管数量,但是网上的方法只针对于Chevereto V3,V4却没有相关教程,查询谷歌也无结果,经博主查询大量案例今天为大家分享一下 Chevereto V4 首页显示图片托管数量的实现方法。1. 修改后台…

70.语义分割和数据集

在 之前讨论的目标检测问题中,我们一直使用方形边界框来标注和预测图像中的目标。 本节将探讨语义分割(semantic segmentation)问题,它重点关注于如何将图像分割成属于不同语义类别的区域。 与目标检测不同,语义分割可…

20230112编译AIO-3568J的Buildroot(rk356x_linux_release_v1.3.0b_20221213)

20230112编译AIO-3568J的Buildroot(rk356x_linux_release_v1.3.0b_20221213) 2023/1/12 20:40 当前可以拿到的Buildroot的SDK; rk356x_linux_release_v1.0.0_20210511_split_dir rk356x_linux_release_v1.2.0_20211019_split_dir rk356x_linu…

Ventoy主题美化,以及自行制作方法

Ventoy是基于grub2 所制作的,所以可以自行制作或者将现成的主题套用到Ventoy 方法一: 主题下载地址 上面是两个可以直接使用的Ventoy主题地址,然后下载下来解压文件,我们可以得到 接着往下走,我们可以的得到 现在我们…

Oracle Apex低码平台-定制验证方案

Oracle Apex低码平台-定制验证方案 0 APEX简介: Oracle APEX 是一个低代码开发平台,您可以在该平台上构建可扩展的安全企业应用程序。这些应用程序具有先进的功能,而且可以在任何地方部署。 构建企业应用速度提高 20 倍,代码减…

Dubbo服务降级

Dubbo服务降级 1. 为什么需要服务降级 RPC 是解决分布式系统通信问题的一大利器,而分布式系统的一大特点就是高并发,所以说 RPC 也会面临高并发的场景。在这样的情况下,我们提供服务的每个服务节点就都可能由于访问量过大而引起一系列的问题…

Chrome浏览器插件推荐【第一期】

1、Tampermonkey Tampermonkey(油猴)是一款免费的浏览器扩展和最为流行的用户脚本管理器,它适用于 Chrome, Microsoft Edge, Safari, Opera Next, 和 Firefox。虽然有些受支持的浏览器拥有原生的用户脚本支持,但 Tampermonkey 将在…

Webpack的应用

处理css文件 总共有src目录下的index.css和index.js、同根的index.html和webpack.config.js文件,然后npm init之后生成package.json文件,npm install后生成package-lock.json文件,最后npm run webpack之后有dist目录下各种文件 index.js i…

nodejs使JWT(全)

Token token表示令牌,用户的登录凭证。 基于 Token 的身份验证方法,使用基于 Token 的身份验证方法,在服务端不需要存储用户的登录记录。大概的流程是这样的: 客户端使用用户名跟密码请求登录服务端收到请求,去验证…

css动画效果之transform

transformTransform属性应用于元素的2D或3D转换。这个属性允许你将元素旋转,缩放,移动,倾斜等。旋转rotate、扭曲skew、移动translate、缩放scale、矩阵变形matrix属性名扩展写法属性含义none定义不进行转换。rotaterotateX()(3D写…

rabbitmq+netcore6 【5】Topics:主题

文章目录1)前言2)Topic exchange 主题交换机3)举例4)总结5)综合以上代码准备工作生产者消费者1消费者2结果验证官网参考链接: https://www.rabbitmq.com/tutorials/tutorial-five-dotnet.html其他人的翻译版…

臻图信息搭建智慧水务管理平台,保障供水安全运行

伴随着城市智慧化进程,供水系统也在朝着高度集成化、数字化、智能化的管理模式发展。在2022年,水利部也印发了相关水务保障规划,对供水工程的建设、运行管理、水源保护等管理提出了明确要求,采取物联网、互联网等措施,…

从“以旧换新”送手机看年礼消费新风尚

千门万户曈曈日,总把新桃换旧符。每年的春节,都是中国人辞旧迎新的重要时刻。在新春年礼的选择上,曾经的“烟酒糖茶”老四样正在逐渐被其他新潮年礼所替代,手机等诸多科技好物被纳入到送年礼清单。手机年货很“潮”,让…

Redis整理合集

SQL和NOSQL的区别?SQLNOSQL数据结构结构化非结构化数据关联关联的非关联的查询方式SQL查询非SQL查询事物特性ACID(事务)BASE存储方式磁盘内存扩展性垂直水平使用场景数据结构固定相对业务对数据的安全性一致性需求较高数据结构不固定对一致性、安全性需…

论文投稿指南——中文核心期刊推荐(地质学 2)

【前言】 🚀 想发论文怎么办?手把手教你论文如何投稿!那么,首先要搞懂投稿目标——论文期刊 🎄 在期刊论文的分布中,存在一种普遍现象:即对于某一特定的学科或专业来说,少数期刊所含…

【性能优化】Mybatis Plus:优化查询速度 - SQL替换Service

优化查询速度 - SQL替换Service Service 接口问题 下面是原先的 Service 实现类代码,有门店 ID、订单状态、查询时间段,然后查出了所有的结果,继续使用 java8 的特性获取汇总结果,随着项目的推移,数据量越来越大&…

Webpack 中使用source map 在开发过程中进行调试

我们都知道webpack在打包的时候会将源代码打包成一个bundle文件,bundle文件就是经过了loader转换,还有webpack的一些插件处理,以及webpack构建过程中的一些转换,最后会生成一个大的JS文件,直接去看这个文件是没法调试的…

【React】一.React基本使用

目录 基本介绍 一.React基本使用 安装命令 使用方法 记录问题 使用React脚手架初始化项目 基本介绍 构建用户界面的js库用户界面可以理解为html页面(前端)react主要用来写html页面或者构建web应用只负责视图层(V)的渲染。&am…

【ROS2 入门】虚拟机环境 ubuntu 18.04 ROS2 安装

大家好,我是虎哥,从今天开始,我将花一段时间,开始将自己从ROS1切换到ROS2,做为有别于ROS1的版本,做了很多更新和改变,我还是很期待自己逐步去探索ROS2中的惊喜。在安装过程中我也遇到的一些坑&a…

阿里云服务器安装wireshark图形界面与远程连接配置(使用tigervnc)

tags: Server Ubuntu Wireshark 写在前面 昨天折腾了一下透视HTTP协议这门课的实验环境, 通过阿里云的轻量应用服务器来完成了, 但是还差一步, 那就是wireshark的安装, 虽然通过apt安装好了, 但是打不开实在是烦人, 后来经过各种搜索, 我发现问题出在了tightvnc上, 这个vnc服…