我们在项目使用阿里云RDS的时候经常需要进行外网调试,但是RDS的外网访问是要收取一定的流量费用的,所以我们采取MySql-Proxy开启代理的形式,让访问ECS云服务器实现RDS的外网访问。
接下来我们一步步开始
我所使用的服务器操作系统 为Ubuntu-14.04
一、首先在服务器上安装MySql
用apt-get 安装mysql,在命令行输入sudo apt-get install mysql-server
然后会自动安装并且建立好关系,中途会提示建立root账户的密码,安装完后自动启动服务。
检查服务是否启动:
输入 netstat -an | grep 3306 查看是否有端口被监听,如果有的话说明服务已经启动了。
输入mysql -u root -p 然后提示输入密码,进入mysql界面。
成功进入MySql后就代表数据库已经被安装好了。
二、安装MySql-Proxy 数据库的代理工具
用apt-get 安装mysql-proxy,在命令行输入sudo apt-get install mysql-proxy 进行安装
安装完成后,创建所需要的配置文件
在/etc/mysql/下 创建mysql-proxy.conf
三、相关配置文件
一、配置mysql-proxy.cnf
在刚刚创建的mysql-proxy.cnf配置文件中
写入如下配置内容:
[mysql-proxy]
daemon = true
user = mysql
proxy-skip-profiling = true
keepalive = true
max-open-files = 2048
event-threads = 50
pid-file = /var/run/mysql-proxy.pid
log-file = /opt/log/mysql-proxy.log
log-level = debug
admin-address=localhost:4401
admin-username=admin
admin-password=adminpassword
admin-lua-script=/usr/lib/mysql-proxy/lua/admin.lua
proxy-address = 114.55.103.2x:3307
proxy-backend-addresses = rm-xxxxxxxxxxxxxxx.mysql.rds.aliyuncs.com:3306
proxy-lua-script=/usr/lib/mysql-proxy/lua/proxy/balance.lua
解释下几个重要的配置信息:
proxy-address 表示你想要访问该代理数据库的路径和地址,配置完后我们可以在远程通过该地址进行访问
proxy-backend-addresses 表示你所要代理的阿里云RDS数据库的地址
log-file 指定你的日志路径,如果出现错误可以查看相关的日志信息
admin-lua-script 为你mysql-proxy的admin.lua脚本的路径
proxy-lua-script 为你mysql-proxy的balance.lua脚本的路径
注意:使用mysql-proxy 需要服务器上安装了lua 如果未安装 则需要进行安装否则将无法使用。
二、修改/etc/default/mysql-proxy
保存上述配置文件后,需要修改mysql-proxy的默认配置
打开/etc/default/mysql-proxy 如果没有则创建
将里面的内容改为
ENABLED="true"
OPTIONS=“--defaults-file=/etc/mysql/mysql-proxy.cnf"
表示启用代理并且制定默认配置文件为刚刚所创建的路径文件
四、启动MySql-Proxy
首先需要修改刚刚配置文件的权限
sudo chmod 0660 /etc/mysql/mysql-proxy.cnf 如果不修改将无法启动
然后启动sudo /etc/init.d/mysql-proxy start
出现 * Starting MySQL Proxy daemon... [ OK ] 字样后则代表启动成功
接下来就能在本机或者其他外网使用刚刚配置的IP和端口 进行访问了,访问的密码则是所代理数据库的密码和用户
不单单是阿里云,其他需要内网转外网访问的MySql操作可以使用以上方式进行访问。