摘要:RDS关系型数据库是一种基于云计算平台的即开即用、稳定可靠、弹性伸缩、便捷管理的在线关系型数据库服务。
本文分享自华为云社区《一致性处理事务这下还是看RDS的吧【秋招特训】》,作者:样子的木偶。
RDS关系型数据库是一种基于云计算平台的即开即用、稳定可靠、弹性伸缩、便捷管理的在线关系型数据库服务。用户通过从操作层面了解RDS MySQL数据库配置购买、RDS MySQL管理等基本操作,以及实例连接方式体验,简单、易上手

作为云上数据库
来一起看看怎么安装吧
没有就快提前去配好,我们安装很快的奥
上来在左边的菜单栏中寻找数据库,没错RDS就在数据库下,数据库 > 云数据库 RDS,接下来开始购买数据库实例
我的实验配置全在这里了,对着一样一样找呗
① 计费模式:按需计费
② 区域:华北-北京四
③ 实例名称:rds-test
④ 数据库引擎:MySQL
⑤ 数据库版本:5.7
⑥ 实例类型:单机
⑦ 存储类型:SSD云盘
⑧ 可用区:任选
⑨ 时区:默认
这是实验的配置,实际的配置可以根据自己的需求进行更改
① 性能规格:通用型。(2核4G)
② 存储空间:40GB。
③ 硬盘加密:不加密。
① 虚拟私有云:已创建vpc-name(name为账号名)
② 安全组:sys-name(name为账号名)
③ 管理员帐户名:root
④ 数据库端口:默认3306
⑤ 管理员密码:自定义,如OYhBDa1RyzSVrvAH
⑥ 参数模板:默认
⑦ 购买数量:1
⑧ 只读实例:暂不购买
到这里点击立即购买,等待创建(这个时间会有一会不要着急大概5~9分钟)
期间可以尝试进行刷新状态栏
终于建造完成了
点击刚刚购买的数据库名称进入下一个页面
在左侧菜单中基本信息下点击备份于恢复
修改一下备份策略吧,点击修改备份策略弹出弹窗进行修改
这里实验中保留天数修改为一天
输入用户名和密码,用户名为:root;密码为创建实例时设置的密码,单击“测试连接”连接成功,点击登录。
点击登录,来到新的页面
点击新建数据库,为数据库起一个名字吧
名字自定义,字符集根据需要选择,这里我选择utf-8

来吧,新建一张表试试看
点击数据库名称->点击新建一张表
根据需求填写基本信息、字段等信息,立即创建表。
① 表名:自定义
② 存储引擎:默认
③ 字符集:默认
④ 校验规则:默认
⑤ 备注:自定义
⑥ 高级选项:默认
点击“下一步”,添加表字段,点击“立即创建”、“执行脚本”。
① 列名:id
② 类型:int
③ 可空 :勾选
其他项默认即可
脚本执行完成,成功新建一张表
返回表视图发现出现名为q123的表
也可以通过SQL语句在数据库中创建表格,在数据管理首页的数据列表中,点击右侧【SQL查询】进入查询页面,使用sql语句创建表
CREATE TABLE person (
number INT(11),
name VARCHAR(255),
birthday DATE
);
通过这段sql语句创建出一张名为person的表
我们发现这里已经建成一张表,同时在建表时我们还附加了姓名,序号,出生日期等信息
接下类我们同样试着用sql语句向表中插入信息,执行下面这段sql语句插入信息
INSERT INTO
person(number,name,birthday)
VALUES
(1,'张三','1993-08-04'),
(2,'李四', '2001-06-26'),
(3,'王五', '1996-05-12');
执行完成后点进表内
发现表中信息已经补充完整
以上为通过数据管理服务DAS连接MySQL实例的基本操作了
接下来我们试着通过ecs连接上我们的数据库
登录我们的ecs,在终端面板输入
ssh root@EIP
这里的EIP指的是自己的ecs的公网ip
这里输入yes,接受密钥输入
接下来在我们的客户端上安装mysql服务,输入以下命令进行安装
yum install mysql -y
安装成功返回以下信息
注意了注意了:ECS与RDS实例在相同安全组时,默认ECS与RDS实例互通,无需设置安全组规则,可以在ECS上ping RDS内网地址进行验证;ECS与RDS实例在不同安全组时,需要为RDS和ECS分别设置安全组规则。
输入以下命令,以连接目标主机MySQL。使用云数据库RDS的内网IP替换命令中的【RDS内网IP】;用RDS实例密码替换命令中的【RDS实例密码】;
RDS实例密码:自己在创建时的密码
在这里获取内网ip然后,使用以下命令连接数据库
mysql -h RDS内网IP -uroot -pRDS实例密码
使用公网来连接那我们就来一起购买、配置以下我们的公网ip吧
返回控制台,在服务列表中,选择“网络 > 弹性公网IP EIP”,进入网络控制台。点击购买弹性公网IP。
填选实例相关信息,操作如下:
① 计费模式:按需计费
② 区域:华北-北京四
③ 线路:全动态BGP
④ 公网带宽:按带宽计费
⑤ 带宽大小:1
⑥ 带宽名称:bandwidth-rds(自定义)
⑦ 购买量:1
点击立即购买
返回数据库实例详情页面,在左侧导航栏,单击“连接管理”->“公网地址”->单击“绑定”->“确定”
绑定完ip后我们还需要去开放我们的安全组
返回控制台,在服务列表中,选择“网络 -> 虚拟私有云 VPC ->访问控制 -> 安全组”,点击以用户名命名的安全组名称。
选择ecs绑定的安全组
进入安全组添加“入方向规则”->“添加规则”
① 优先级:1
② 策略:允许
③ 协议端口:3306(或选择一键放通,实际业务场景不推荐)。
④ IP地址设为0.0.0.0/0。
点击“确定”。
将3306端口号加入
返回控制台,在服务列表中,选择“数据库 -> 云数据库RDS ->点击数据库实例名称-> 连接管理 -> 公网连接,获取RDS的弹性公网IP,测试是否通过RDS的弹性公网IP可以与mysql连通。
回到前面操作的Xfce终端中,运行下方命令。(用获取的RDS弹性公网IP替换命令中的【RDS弹性公网IP】)
ping RDS弹性公网IP
✨✨✨可以ping通✨✨✨
Ctrl+c停止,然后使用如下命令再次连接RDS实例:
用RDS的弹性公网IP替换命令中的【RDS-EIP】,在数据库实例详情页中确认数据库端口号替换命令中的【数据库端口号】,默认3306;用创建RDS实例设置的数据库密码替换命令中的【RDS实例密码】
RDS实例密码:(自己创建的实例密码)
mysql -h RDS-EIP -P 3306(数据库端口号) -uroot -pRDS实例密码
使用以上命令登录mysql
出现这个字样代表登入成功
RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎,并且提供了容灾、备份、恢复、监控、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼,希望谨以此文可以带起大家对RDS的兴趣帮助大家更快入门。
Rackup通过Rack的默认处理程序成功运行任何Rack应用程序。例如:classRackAppdefcall(environment)['200',{'Content-Type'=>'text/html'},["Helloworld"]]endendrunRackApp.new但是当最后一行更改为使用Rack的内置CGI处理程序时,rackup给出“NoMethodErrorat/undefinedmethod`call'fornil:NilClass”:Rack::Handler::CGI.runRackApp.newRack的其他内置处理程序也提出了同样的反对意见。例如Rack
我发现ActiveRecord::Base.transaction在复杂方法中非常有效。我想知道是否可以在如下事务中从AWSS3上传/删除文件:S3Object.transactiondo#writeintofiles#raiseanexceptionend引发异常后,每个操作都应在S3上回滚。S3Object这可能吗?? 最佳答案 虽然S3API具有批量删除功能,但它不支持事务,因为每个删除操作都可以独立于其他操作成功/失败。该API不提供任何批量上传功能(通过PUT或POST),因此每个上传操作都是通过一个独立的API调用完成的
我有一个涉及多台机器、消息队列和事务的问题。因此,例如用户点击网页,点击将消息发送到另一台机器,该机器将付款添加到用户的帐户。每秒可能有数千次点击。事务的所有方面都应该是容错的。我以前从未遇到过这样的事情,但一些阅读表明这是一个众所周知的问题。所以我的问题。我假设安全的方法是使用两阶段提交,但协议(protocol)是阻塞的,所以我不会获得所需的性能,我是否正确?我通常写Ruby,但似乎Redis之类的数据库和Rescue、RabbitMQ等消息队列系统对我的帮助不大——即使我实现某种两阶段提交,如果Redis崩溃,数据也会丢失,因为它本质上只是内存。所有这些让我开始关注erlang和
基础版云数据库RDS的产品系列包括基础版、高可用版、集群版、三节点企业版,本文介绍基础版实例的相关信息。RDS基础版实例也称为单机版实例,只有单个数据库节点,计算与存储分离,性价比超高。说明RDS基础版实例只有一个数据库节点,没有备节点作为热备份,因此当该节点意外宕机或者执行重启实例、变更配置、版本升级等任务时,会出现较长时间的不可用。如果业务对数据库的可用性要求较高,不建议使用基础版实例,可选择其他系列(如高可用版),部分基础版实例也支持升级为高可用版。基础版与高可用版的对比拓扑图如下所示。优势 性能由于不提供备节点,主节点不会因为实时的数据库复制而产生额外的性能开销,因此基础版的性能相对于
两个gsub产生不同的结果。谁能解释一下为什么?代码也可在https://gist.github.com/franklsf95/6c0f8938f28706b5644d获得.ver=9999str="\tCFBundleDevelopmentRegion\n\ten\n\tCFBundleVersion\n\t0.1.190\n\tAppID\n\t000000000000000"putsstr.gsub/(CFBundleVersion\n\t.*\.).*()/,"#{$1}#{ver}#{$2}"puts'--------'putsstr.gsub/(CFBundleVersio
我对图像处理完全陌生。我对JPEG内部是什么以及它是如何工作一无所知。我想知道,是否可以在某处找到执行以下简单操作的ruby代码:打开jpeg文件。遍历每个像素并将其颜色设置为fx绿色。将结果写入另一个文件。我对如何使用ruby-vips库实现这一点特别感兴趣https://github.com/ender672/ruby-vips我的目标-学习如何使用ruby-vips执行基本的图像处理操作(Gamma校正、亮度、色调……)任何指向比“helloworld”更复杂的工作示例的链接——比如ruby-vips的github页面上的链接,我们将不胜感激!如果有ruby-
我有一个super简单的脚本,它几乎包含了FayeWebSocketGitHub页面上用于处理关闭连接的内容:ws=Faye::WebSocket::Client.new(url,nil,:headers=>headers)ws.on:opendo|event|p[:open]#sendpingcommand#sendtestcommand#ws.send({command:'test'}.to_json)endws.on:messagedo|event|#hereistheentrypointfordatacomingfromtheserver.pJSON.parse(event.d
我正在尝试解析网页,但有时会收到404错误。这是我用来获取网页的代码:result=Net::HTTP::getURI.parse(URI.escape(url))如何测试result是否为404错误代码? 最佳答案 像这样重写你的代码:uri=URI.parse(url)result=Net::HTTP.start(uri.host,uri.port){|http|http.get(uri.path)}putsresult.codeputsresult.body这将打印状态码和正文。
我已经开始使用mysql2gem。我试图弄清楚一些基本的事情——其中之一是如何明确地执行事务(对于批处理操作,比如多个INSERT/UPDATE查询)。在旧的ruby-mysql中,这是我的方法:client=Mysql.real_connect(...)inserts=["INSERTINTO...","UPDATE..WHEREid=..",#etc]client.autocommit(false)inserts.eachdo|ins|beginclient.query(ins)rescue#handleerrorsorabortentirelyendendclient.commi
保存成功后可以回滚吗?让我有一个带有属性名称、电子邮件等的用户模型。例如u=User.newu.name="test_name"u.email="test@email.com"u.save现在记录将成功保存在数据库中,之后我想回滚我的事务(不是销毁或删除)。有什么想法吗? 最佳答案 您可以通过交易来做到这一点,请参阅http://markdaggett.com/blog/2011/12/01/transactions-in-rails/例子:User.transactiondoUser.create(:username=>'Nemu