一、前言

阿里云RDS数据白名单一般只对内部的服务器开放,一般不会开放给外网直接访问,有时开发需要直接访问RDS数据库,平时我们使用的网络都是动态公网IP,经常会变化,设置白名单相对繁琐一点。想了一个简单办法,用阿里云ECS服务器代理访问RDS MySQL数据库。

二、参考资料

MySQL-Proxy下载地址(MySQL Proxy (Archived Versions)

MySQL :: Download MySQL Proxy (Archived Versions)https://downloads.mysql.com/archives/proxy/

1、下载MySQL Proxy (Archived Versions)

2、解压 mysql-proxy-0.8.5-linux-debian6.0-x86-64bit.tar.gz 

# 解压压缩包
$ tar -zxvf mysql-proxy-0.8.5-linux-debian6.0-x86-64bit.tar.gz 

# 把文件移动到 /usr/local/mysql-proxy 
$ mv mysql-proxy-0.8.5-linux-debian6.0-x86-64bit /usr/local/mysql-proxy 

3、创建配置文件 /usr/local/mysql-proxy/mysql-proxy.conf 

$ cd /usr/local/mysql-proxy/ 
$ view mysql-proxy.conf 

# 编辑内容如下

[mysql-proxy] 

daemon = true 
user = mysql 
keepalive = true 
plugins = proxy,admin 

### 日志级别 
log-level = info 
log-file = /usr/local/mysql-proxy/mysql-proxy.log 
pid-file = /usr/local/mysql-proxy/mysql-proxy.pid 

### 本机ip地址 阿里云ECS服务器,用内网ip配置 端口为我们外网需要访问的端口 
proxy-address = 172.18.75.162:3307 

## backend主 注意addresses 阿里云RDS 内网访问地址 [内网地址不产生流量] 
proxy-backend-addresses = rm-xxxxx.mysql.rds.aliyuncs.com:3306 

## proxy的管理用户admin的IP和端口 我们内部的管理端口 [管理整个代理] 
admin-address= 127.0.0.1:9197 

### 下面的三个参数必须设定,否则mysql-proxy服务启动不了的 管理整个代理的账号和密码 
admin-username = admin 
admin-password = adminsuperstar 

### admin的lua脚本地址 
admin-lua-script = /usr/local/mysql-proxy/lib/mysql-proxy/lua/admin.lua 

3、给 /usr/local/mysql-proxy/mysql-proxy.conf 执行权限,否则启动失败。

$ chmod 660 /usr/local/mysql-proxy/mysql-proxy.conf

4、启动 MySQL Proxy

# 启动 mysql proxy
$ /usr/local/mysql-proxy/bin/mysql-proxy --defaults-file=/usr/local/mysql-proxy/mysql-proxy.conf 

# 关闭 mysql proxy 
$ killall -9 mysql-proxy 

# 也可以通过 mysql-proxy.pid 查看启动的进程号 
$ cat /usr/local/mysql-proxy/mysql-proxy.pid 
28269 

# 终止该进程即可关闭代理 
$ kill -9 28269 

5、启动成功后的日志,上面配置文件的日志路径

$ tail -f /usr/local/mysql-proxy/mysql-proxy.log

 

6、阿里云开启ECS外网端口,监听的端口是 3307,我们外网通过这个端口访问 RDS MySQL数据库 

 7、阿里云RDS数据库添加阿里云ECS白名单

阿里云RDS数据库添加阿里云ECS白名单,否则访问不了,特别注意,尽量使用ECS的内网,内网不产生流量。添加 专有网络和经典网络白名单

 8、用Navicat链接测试,连接成功

 9、关闭 mysql-proxy

 $ killall -9 mysql-proxy
Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐