目录
手把手教你使用AWS RDS
一项新技能的学习,动手去做是最好的开始。一边实验,一边探究可能是最快捷的方法
准备点儿什么
首先,你要先注册一个Amazon的账户。
具体注册步骤参考
https://aws.amazon.com/cn/register-flow/
创建AWS RDS 的 instance
打开AWS 管理控制台
打开RDS控制台
选择"所有服务“=》”数据库“=》RDS ,点击”创建数据库"
选择数据库引擎
在页面底部勾选“仅启用符合 RDS 免费使用套餐资格的选项" , 以免启用收费引擎和选项。
选择“MySQL”
填写数据库详细信息
这里数据库实例的标识符是mysql-instance1
配置高级设置
这里VPC使用“默认VPC"
这里”数据库参数组“ 和 “选项组”,全部采用默认值。
数据库实例创建
查看实例状态
点击“Amazon RDS” 控制台的“数据库”,可以看到状态已经是“可用”。 现在实例已经创建完毕。
选择 “数据库标识符”下的mysql-instance1, 会显示这个实例的详细信息。
注意: 这里的“终端节点和端口”信息就是我们下一步连接和使用这个实例的必备信息。
使用客户端链接数据库
从LINUX 环境连接
安装mysql client
首先查看是否已经安装了mysql client
ubuntu@ip$ apt list --installed
如果没有安装,执行安装
ubuntu@ip$apt-get install mysql-client
连接数据库
先测试是否可以连接
ubuntu@ip$ nc -vz mysql-instance1.cfqjs0mbpesu.ap-northeast-1.rds.amazonaws.com 3306
DNS fwd/rev mismatch: ec2-3-113-45-221.ap-northeast-1.compute.amazonaws.com != ip-172-31-32-90.ap-northeast-1.compute.internal
ec2-3-113-45-221.ap-northeast-1.compute.amazonaws.com [172.31.32.90] 3306 (mysql) : Connection timed out
显示连接超时,这是是无法连接到数据库的。
连接问题的解决方法
这个问题的原因在于默认情况下,数据库实例建立过程中创建并使用了一个缺省的安全组 rds-launch-wizard , 我们可以看看它的设置:
从“Amazon RDS” 控制台的“数据库”下,这个实例的详细信息中点击“安全性”=》“VPC安全性”下面的链接:
在点击“安全性”中的“入站”
我们可以看到这里它只允许某一个IP的访问(应该是实例本身所在的EC2的地址),点击“编辑”后,将来源IP改为0.0.0.0(即无限制)并保存。
正确的状态应该是这样的:
ubuntu@ip$ nc -vz mysql-instance1.cfqjs0mbpesu.ap-northeast-1.rds.amazonaws.com 3306
DNS fwd/rev mismatch: ec2-3-113-45-221.ap-northeast-1.compute.amazonaws.com != ip-172-31-32-90.ap-northeast-1.compute.internal
ec2-3-113-45-221.ap-northeast-1.compute.amazonaws.com [172.31.32.90] 3306 (mysql) open
成功连接到数据库实例
ubuntu@ip$ mysql -u admin -p -h mysql-instance1.cfqjs0mbpesu.ap-northeast-1.rds.amazonaws.com
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 20
Server version: 5.7.22-log Source distribution
Copyright © 2000, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.
mysql>