通过云服务器跳板连接云数据库RDS?

本文涉及的产品
RDS AI 助手,专业版
RDS DuckDB + QuickBI 企业套餐,8核32GB + QuickBI 专业版
RDS Agent(兼容OpenClaw),2核4GB
简介: 购买同一VPC下的云服务器ECS和云数据库RDS后,在RDS不绑定EIP,如何通过本地Navicat、DBever等工具连接?这里,我们采用Nginx做代理,轻松实现本地访问云数据库,节省RDS绑定EIP的费用。

一、实现原理

1.png
2.png

二、安装nginx

参考地址【1】https://www.runoob.com/linux/nginx-install-setup.html
参考地址【2】https://www.cnblogs.com/boonya/p/7907999.html

  • 安转nginx依赖包
yum -y install make gcc-c++ pcre pcre-devel zlib zlib-devel libtool openssl openssl-devel
  • 下载nginx包

下载地址http://nginx.org/download/,注意:选择1.9以上版本,只有1.9以上版本才支持--with-stream

cd /usr/local/src

wget http://nginx.org/download/nginx-1.9.10.tar.gz
  • 解压
tar zxvf nginx-1.9.10.tar.gz
  • 安装nginx,注意:编译时添加参数--with-stream
cd nginx-1.9.10

./configure --with-stream

make & make install
  • 查看安转目录
whereis nginx

image.png

  • 验证是否安装成功
/usr/local/nginx/sbin/nginx -v

image.png

三、配置并启动nginx

设置代理,将连接服务器【117.73.3.71:3306】请求转发到内网数据库【172.31.0.17:3306】。

  • 修改配置文件
stream {
    upstream rdsmysql {
       hash $remote_addr consistent;
       server 172.31.0.17:3306 weight=5 max_fails=3 fail_timeout=30s;
    }

    server {
       listen 3306;#数据库服务器监听端口
       proxy_connect_timeout 10s;
       proxy_timeout 300s;#设置客户端和代理服务之间的超时时间,如果5分钟内没操作将自动断开
       proxy_pass rdsmysql;
    }
}
  • 启动nginx
cd /usr/local/nginx/sbin

./nginx
  • 验证启动是否成功
ps aux|grep nginx

image.png

  • 重新载入配置文件
/usr/local/nginx/sbin/nginx -s reload
  • 查看服务器是否对3306端口监听
netstat -nap|grep 3306

image.png

  • 停止nginx
/usr/local/nginx/sbin/nginx -s stop

四、通过nginx代理连接MySQL

使用本地工具Navicat连接MySQL

848e8113e7487d9817eeefe369b183b.jpg

连接失败原因:ECS服务器本身的防火墙未开放3306端口。注意:ECS的安全组只是针对外网访问做了限制,服务器本身仍然有限制,共两层限制。

  • 添加需要监听的端口
/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT

b368231f42ce826d21cfe0adfcf7858.png

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
10月前
|
存储 Oracle 关系型数据库
服务器数据恢复—光纤存储上oracle数据库数据恢复案例
一台光纤服务器存储上有16块FC硬盘,上层部署了Oracle数据库。服务器存储前面板2个硬盘指示灯显示异常,存储映射到linux操作系统上的卷挂载不上,业务中断。 通过storage manager查看存储状态,发现逻辑卷状态失败。再查看物理磁盘状态,发现其中一块盘报告“警告”,硬盘指示灯显示异常的2块盘报告“失败”。 将当前存储的完整日志状态备份下来,解析备份出来的存储日志并获得了关于逻辑卷结构的部分信息。
|
8月前
|
SQL Java 关系型数据库
Java连接MySQL数据库环境设置指南
请注意,在实际部署时应该避免将敏感信息(如用户名和密码)硬编码在源码文件里面;应该使用配置文件或者环境变量等更为安全可靠地方式管理这些信息。此外,在处理大量数据时考虑使用PreparedStatement而不是Statement可以提高性能并防止SQL注入攻击;同时也要注意正确处理异常情况,并且确保所有打开过得资源都被正确关闭释放掉以防止内存泄漏等问题发生。
358 13
|
8月前
|
SQL 关系型数据库 MySQL
MySQL数据库连接过多(Too many connections)错误处理策略
综上所述,“Too many connections”错误处理策略涉及从具体参数配置到代码层面再到系统与架构设计全方位考量与改进。每项措施都需根据具体环境进行定制化调整,并且在执行任何变更前建议先行测试评估可能带来影响。
1708 11
|
10月前
|
安全
基于Reactor模式的高性能服务器之Acceptor组件(处理连接)
本节介绍了对底层 Socket 进行封装的设计与实现,通过 `Socket` 类隐藏系统调用细节,提供简洁、安全、可读性强的接口。重点包括 `Socket` 类的核心作用(管理 `sockfd_`)、成员函数的功能(如绑定地址、监听、接受连接等),以及 `Acceptor` 组件的职责:监听连接、接收新客户端连接并分发给上层处理。同时说明了 `Acceptor` 与 `EventLoop` 和 `TcpServer` 的协作关系,并展示了其成员变量和关键函数的工作机制。
214 2
|
9月前
|
SQL Oracle 关系型数据库
【赵渝强老师】Oracle客户端与服务器端连接建立的过程
Oracle数据库采用客户端-服务器架构,客户端通过其网络环境与服务器通信,实现数据库访问。监听程序负责建立连接,通过命令lsnrctl可启动、停止及查看监听状态。本文介绍了监听器的作用及相关基础管理操作。
358 0
|
10月前
|
Oracle 关系型数据库 数据库
数据库数据恢复—服务器异常断电导致Oracle数据库报错的数据恢复案例
Oracle数据库故障: 某公司一台服务器上部署Oracle数据库。服务器意外断电导致数据库报错,报错内容为“system01.dbf需要更多的恢复来保持一致性”。该Oracle数据库没有备份,仅有一些断断续续的归档日志。 Oracle数据库恢复流程: 1、检测数据库故障情况; 2、尝试挂起并修复数据库; 3、解析数据库文件; 4、导出并验证恢复的数据库文件。
|
10月前
|
SQL XML Java
配置Spring框架以连接SQL Server数据库
最后,需要集成Spring配置到应用中,这通常在 `main`方法或者Spring Boot的应用配置类中通过加载XML配置或使用注解来实现。
719 0
|
7月前
|
弹性计算 运维 安全
阿里云轻量应用服务器与云服务器ECS啥区别?新手帮助教程
阿里云轻量应用服务器适合个人开发者搭建博客、测试环境等低流量场景,操作简单、成本低;ECS适用于企业级高负载业务,功能强大、灵活可扩展。二者在性能、网络、镜像及运维管理上差异显著,用户应根据实际需求选择。
557 10

推荐镜像

更多