上周由于园子后院起火,不得不调兵回去救火,出海记暂时停更,这周继续更新,“出海记”记录的是我们在 AWS 上建设博客园海外站的历程。

在这一记中记录的是我们基于 AWS 免费套餐(Free Tier)创建一个 Amazon RDS for SQL Server 实例,这也是我们第一次使用 AWS RDS,之前只用过阿里云 RDS。

首先进入 AWS RDS 控制台,AWS 在控制台推荐了他们自主研发的云数据库 Amazon Aurora,但我们目前只能用 SQL Server,忽略此推荐,在控制台“创建数据库”卡片中点击创建数据库

进入创建数据库的界面,这是一个长长的“菜单”,有很多食品可供选择,但我们囊中羞涩,只能点免费套餐中的食品。

  • “数据库创建方法”选择标准创建

  • “引擎选项”-“引擎类型”选择Microsoft SQL Server
  • “引擎选项”-“版本”选择SQL Server Express Edition(注:免费套餐只能选择这个版本),版本号选SQL Server 2017 14.00.3294.2.v1
  • “模板”选免费套餐(注:模板中出现免费套餐的选项,说明这个规格的实例支撑免费套餐)。
  • 在“设置”-“数据库实例标识符”中输入实例名称(支持连字符,不支持下划线),这里输入optcode-db(注:optcode是博客园海外站的暂用域名)
  • 在“设置”-“凭证设置”-“主用户名”中输入数据库账户用户名(支持下划线,不支持连字符),然后输入密码
  • “数据库实例大小”真能选小份(db.t2.micro),这是免费套餐仅能享用的规格。
  • 在“存储”部分,“存储类型”选默认的通用型(SSD),“分配的存储空间”选默认的20GiB(这也是免费套餐支持的最大存储空间),去选启用存储自动扩展以免产生额外的费用

  • “连接”就用默认的VPC
  • “Microsoft SQL Server Windows 身份验证”就用默认的不启用
  • “其他配置”就用默认值。
  • 确认一下“月度估算费用”中是否免费套餐

最后,点击“创建数据库”按钮下单。

这时控制台会提示:

正在创建数据库 optcode-db。

您的数据库可能需要几分钟时间才能启动。

等了10分钟左右,数据库创建好了。

AWS 没有提供 SQL Server 的 web 管理控制台,需要通过微软提供的 SQL Server 客户端管理工具 SQL Server Management Studio 或者 mssql-cli 管理数据库,这里我们选择命令行工具 mssql-cli 。

用免费套餐创建1台 Ubuntu 18.04 EC2 服务器用于安装 mssql-cli ,参考 云计算之路-出海记:整一台 AWS 免费云服务器

安装 mssql-cli

curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
sudo apt-add-repository https://packages.microsoft.com/ubuntu/18.04/prod
sudo apt-get update
sudo apt-get install mssql-cli
sudo apt-get install -f

安装后之后用 mssql-cli 命令连接 RDS for SQL Server

mssql-cli -S optcode-db.cddc6wiequiq.us-west-1.rds.amazonaws.com

报错

Error message: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: TCP Provider, error: 40 - Could not open a connection to SQL Server)

出现上面的错误是由于运行 mssql-cli 命令的 EC2 服务器与 RDS 实例不在同一个安全组。

进入 EC2 控制台选中对应的实例,点击“操作”->“安全”->“更改安全组”,将这台服务器加入到 RDS 实例所在的安全组,就能成功连接了。

mssql-cli 连接上 RDS 实例之后,看一下实例中当前有哪些数据库?

master> \ld
Time: 0.453s
+----------+
| name |
|----------|
| master |
| tempdb |
| model |
| msdb |
| rdsadmin |
+----------+
(5 rows affected)

接下来为海外站博客系统创建一个空数据库 optcode_blog

master> CREATE DATABASE optcode_blog

最后导入博客系统数据库结构的创建脚本

$ mssql-cli -S xxx -U yyy -P 'zzz' -d optcode_blog -i optcode_blog.sql
Commands completed successfully.

AWS 巨轮上存放数据的免费仓库就这样建好了,这一记就记到这里了。

optcode_blog> \lt
Time: 0.454s
+----------------+-------------------------------+
| table_schema | table_name |
|----------------+-------------------------------|
| dbo | blog_Images |
...

云计算之路-出海记:建一个免费仓库 Amazon RDS for SQL Server的更多相关文章

  1. 云计算之路-出海记:蹭一张 aws 船票

    出海记开篇之后,在 aws 上搭建博客园海外站的出海计划今天开始迈出第一步 -- 注册一个 aws 海外区域账号. aws 现在针对新注册用户提供12个月免费套餐(正在园子里推广并提供了专属注册通道) ...

  2. 云计算之路-出海记:整一台 aws 免费云服务器

    上次蹭到一张船票,登上了 aws 这艘巨轮,今天要在船上的免费餐厅吃一顿免费晚餐 -- 整一台 aws 免费套餐中的 EC2 服务器体验一下. 进入 EC2 控制台,点击"启动实例" ...

  3. 云计算之路-出海记:命令行下的 AWS

    俗话说"三百六十行,行行出状元",自从有了电脑之后,三百六十行又多了一行 -- 命令行.GUI 的诞生开创了繁荣的 PC "窗口"(windows)时代,互联网 ...

  4. 云计算之路-出海记-小目标:Hello World from .NET 5.0 on AWS

    品尝过船上的免费晚餐,眺望着 aws 上搭建博客园海外站的宏伟目标,琢磨着眼前可以实现的小目标,不由自主地在屏幕上敲出了 -- "Hello World!",就从这个最简单朴实的小 ...

  5. 微软推出的免费新书《Introducing Microsoft SQL Server 2012》

    微软推出的免费新书<Introducing Microsoft SQL Server 2012>,该书详细介绍微软SQL 2012数据库服务最新功能以及功能应用和使用技巧. 该书适合SQL ...

  6. 【netcore入坑记】 .Net core UseRowNumberForPaging 分页报错 SQL Server 2008 R2 EntityFrameworkCore

    异常环境: netcore版本:.Net Core 2.1 efcore版本:Microsoft.EntityFrameworkCore.SqlServer 2.1.1 sql sqlserver 版 ...

  7. 云计算之路-阿里云上:数据库连接数过万的真相,从阿里云RDS到微软.NET Core

    在昨天的博文中,我们坚持认为数据库连接数过万是阿里云RDS的问题,但后来阿里云提供了当时的数据库连接情况,让我们动摇了自己的想法. 帐户 连接数 A 4077 B 3995 C 741 D 698 E ...

  8. 云计算之路-阿里云上:踩着RDS的2个坑

    最近发现阿里云RDS管理控制台升级了,界面更好看了,操作也更方便了,但在美丽的外表下却藏着坑,不小心被我们睬着了. 8月31日下午,我们在RDS管理控制台中创建了一个新的数据库帐号,创建时选择了绑定多 ...

  9. SQL Server 字段类型 decimal(18,6)小数点前是几位?记一次数据库SP的BUG处理

    原文:SQL Server 字段类型 decimal(18,6)小数点前是几位?记一次数据库SP的BUG处理 SQL Server 字段类型 decimal(18,6)小数点前是几位? 不可否认,这是 ...

随机推荐

  1. Pytest之使用断言指定异常

    官网的翻译是使用断言抛出指定异常,当我觉得他这里更应该指的是 Pytest 断言错误类型# 使用raise在测试方法中指定异常的类型,这点和java还是蛮像的呢,具体示例如下: import pyte ...

  2. Spring笔记(4) - Spring的编程式事务和声明式事务详解

    一.背景 事务管理对于企业应用而言至关重要.它保证了用户的每一次操作都是可靠的,即便出现了异常的访问情况,也不至于破坏后台数据的完整性.就像银行的自助取款机,通常都能正常为客户服务,但是也难免遇到操作 ...

  3. 联赛模拟测试20 C. Weed

    题目描述 \(duyege\) 的电脑上面已经长草了,经过辨认上面有金坷垃的痕迹. 为了查出真相,\(duyege\) 准备修好电脑之后再进行一次金坷垃的模拟实验. 电脑上面有若干层金坷垃,每次只能在 ...

  4. 全球首个优秀的华人.net微服务框架 作者:百大僧

    话不多说,直接上地址 https://gitee.com/shoubashou/NetCoreMicroService,目标斩获10000star, 通往牛逼的路上,风景差得让人只说脏话. 是全球首个 ...

  5. DiskLruCache和Lrucache缓存bitmap

    三级缓存,先在内存Lrucache中查找缓存,没有就去外存DiskLrucache中查找,再没有就下载,Lru不会自动删除,所以要设置最大缓存内存,后台运行Lrucache不会消失,关闭程序Diskl ...

  6. 容器探针(liveness and readiness probe)

    一.为什么需要容器探针 如何保持Pod健康   只要将pod调度到某个节点,Kubelet就会运行pod的容器,如果该pod的容器有一个或者所有的都终止运行(容器的主进程崩溃),Kubelet将重启容 ...

  7. [Luogu P4178]Tree (点分治+splay)

    题面 传送门:https://www.luogu.org/problemnew/show/P4178 Solution 首先,长成这样的题目一定是淀粉质跑不掉了. 考虑到我们不知道K的大小,我们可以开 ...

  8. CF1324B

    感觉 \(O(tn^2)\) 不是正解,于是弱弱的发了一波 \(O(tn)\) . 题意描述 你谷还没有人翻译,这里就简单介绍一下. 给你一个长为 \(n\) 的序列,如果它的一个长度至少为 \(3\ ...

  9. (一)http协议介绍

    HTTP协议详解 (一) 介绍 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本 ...

  10. 使用 C# 9.0 新语法提升 if 语句美感

    C# 语言一贯秉承简洁优美的宗旨,每次升级都会带来一些语法糖,让我们可以使代码变得更简洁.本文分享两个使用 C# 9.0 提升 if 语句美感的技巧示例. 使用属性模式代替 IsNullOrEmpty ...