如何连接mysql数据库(AWS下的RDS实例)
Posted
技术标签:
【中文标题】如何连接mysql数据库(AWS下的RDS实例)【英文标题】:How to connect to mysql database (RDS instance under AWS) from 【发布时间】:2021-10-06 12:27:10 【问题描述】:我在 AWS 控制台中为 mysql 数据库创建了 RDS 实例。 我设法使用 .env 文件中的参数连接到我的 laravel 8 应用程序:
DB_CONNECTION=mysql
DB_HOST=myrdsinstance.rds.amazonaws.com
DB_PORT=3306
DB_DATABASE=tads
DB_USERNAME=app_admin_name
DB_PASSWORD=app_admin_password
我尝试从 MySQL Workbench 连接到该数据库。 创建 RDS 实例我设置参数 公共访问设置为“是”以确保安全 - 我想我可以使用它连接到 MySQL Workbench。
在 MySQL Workbench 中的“Under Remote Managent”选项卡上:
在我输入的主机名字段中:myrdsinstance.rds.amazonaws.com 在 我输入的用户名字段:app_admin_name 在我输入的密码字段中 :app_admin_password 在我选择的 SSH 密钥路径字段中:pem 的路径 我用于在控制台中访问我的 aws 实例的文件但我得到了错误: 错误 [Errno 13] 权限被拒绝:'/home/user/.ssh/config'
在我的 ubuntu 控制台中,我运行:
sudo chmod 777 /home/user/.ssh/config
sudo systemctl restart ssh.service
但我得到了下一个错误:
SSH Connection Failed.
Check you SSH Connection settings and whether the SSH server is up.
Error : timed out
出了什么问题,如何解决?
修改块: 在 MySQL Workbench 中,我禁用了“远程管理”选项卡,在那里我尝试使用 ssh 和
在我选择的“连接”选项卡上
Connection Method :“Standart(TCP/IP)” In hostname field I entered :
myrdsinstance.rds.amazonaws.com In port field I entered : 3306 In
usernmne field I entered : app_admin_name In password field I
entered : app_admin_password
在控制台中的安全组下,我添加了带有入站规则的新组:https://prnt.sc/1hxsfhq
但在 MySQL Workbench 中出现错误:
Failed to Connect to MySQL at myrdsinstance.rds.amazonaws.com:3306
with user tads_admin
Can't connect to MySQL server on 'myrdsinstance.rds.amazonaws.com' (110)
谢谢!
【问题讨论】:
您正在尝试通过 SSH 连接到 Amazon RDS 数据库?这是不支持的。如果您想从自己的计算机连接到 Amazon RDS 数据库,请设置Publicly Accessible=Yes
,在安全组中添加一条入站规则,以允许您的 IP 地址访问端口 3306 并正常连接。
请看 MODIFIED BLOCK
【参考方案1】:
检查事项:
数据库在公共子网中启动(定义为具有指向 Internet 网关的路由表条目) 数据库配置为Public Access = Yes
安全组允许从您的 IP 地址对端口 3306 进行入站访问
通过其端点名称连接到数据库
这应该足以对数据库进行网络访问。
如果您的连接尝试在失败之前需要几秒钟,则表明存在网络问题。如果上述所有要求都正确,则从不同的网络重试(例如办公室与家庭与通过手机连接)。请注意,每个连接的 IP 地址都会发生变化。
您也可以临时配置安全组以允许来自 0.0.0.0/0
的访问,以确保 IP 地址不会导致问题。
【讨论】:
似乎我以类似的方式制作,但您提到的 DNS 名称是什么?不是我写的 myrdsinstance 名称?在我的实例下,我有几个参数,例如公共 IPv4 地址私有 IPv4 地址公共 IPv4 DNS 弹性 IP 地址私有 IPv4 DNS VPC ID 是的,尝试连接在 15-20 秒内暂停我的工作台...... 抱歉 -- 控制台中的措辞是 端点名称。您是否尝试从不同的网络连接?您是否尝试在安全组中临时使用0.0.0.0/0
?您确认它在公共子网中吗?
如果到主机名字段设置 myrdsinstance.rds.amazonaws.com 并在相关的安全组中设置源自定义“0.0.0.0/0”(你叫公共子网吗?)在工作台我得到错误无论如何:无法使用用户 tads_admin 在 myrdsinstance.rds.amazonaws.com:3306 连接到 MySQL我填写的所有参数都在 1ts“连接”选项卡中
您确定数据库在公共子网中吗?您可以尝试从不同的网络(例如家庭、办公室和电话连接)吗?否则就是个谜!如果您订阅了 AWS Support,您可以询问他们。
请问公共子网是什么?以上是关于如何连接mysql数据库(AWS下的RDS实例)的主要内容,如果未能解决你的问题,请参考以下文章
连接到 Mysql AWS RDS 实例时工作台错误 10060