您的位置:首页 > 数据库 > MySQL

配置MysqlProxy连接阿里云的内网rds数据库

2013-07-08 10:50 701 查看
最近项目需要,将平台迁移至阿里云的rds数据库上,由于rds设置为内网访问,通过云主机间接访问又不太方便,所以临时在一台云主机上临时配置了一个mysqlproxy,用来在公司通过公网访问数据库,待迁移完毕测试没有问题后,再将mysqlproxy关掉!
简单记录了配置过程
1,mysql官网下载mysql-proxy-0.8.3-linux-glibc2.3-x86-64bit.tar.gz;
2,确认服务器上安装有一下三个软件包:pkgconfig、libevent、lua,没有的话使用yum安装,具体步骤就不写了;(yum install lua;yum install libevent,yum install pkgconfig)
3,解压缩mysql-proxy-0.8.3-linux-glibc2.3-x86-64bit.tar.gz,解压后的目录为:/app/mysql/mysql-proxy-0.8.3-linux-glibc2.3-x86-64bit

4,在以上目录中,建立文件mysql-proxy.cnf,并设置文件权限(必须设置,否则mysqlproxy无法启动):

点击(此处)折叠或打开

chmod 0660 mysql-proxy.cnf

5,编辑mysql-proxy.cnf内容为:

点击(此处)折叠或打开 这个只是代理功能,没有进行读写分离

admin-address = localhost:4041 

admin-username = openser

admin-password = 123456 

admin-lua-script = /app/mysql/mysql-proxy-0.8.3-linux-glibc2.3-x86-64bit/lib/mysql-proxy/lua/admin.lua 

  

proxy-backend-addresses = rds内网地址:3306

proxy-address = 外网IP:4040

log-file = /app/mysql/mysql-proxy-0.8.3-linux-glibc2.3-x86-64bit/mysql-proxy.log

log-level = debug

daemon = true

以上配置中,配置项proxy-backend-addresses和proxy-address 均以实际配置为准;

6,启动mysqlproxy:/app/mysql/mysql-proxy-0.8.3-linux-glibc2.3-x86-64bit/bin/mysql-proxy --defaults-file=./mysql-proxy.cnf

 查看当前目录下的mysql-proxy.log,如没有错误信息,则启动成功

7,在客户端使用NaviCat工具,连接成功



mysqlproxy还有很多配置项,可参考官网网站,这里就不多做试验了;本来想设置为只读,也就是仅供查询使用,但是没有找到相应的配置项,不知道mysqlproxy是否有这样的功能,有空再研究了!

如果遇到乱码:

2.MySQL Proxy0.8.2启动后,我们看的网站页面全是乱码,所以我们要将主从数据库的配置文件my.cnf加进如下代码以避免这个问题:
[client]

default-character-set=utf8 

[mysqld]  
skip-character-set-client-handshake  
init-connect='SET NAMES utf8' 
default-character-set=utf8 

测试的完整配置 :mysql-proxy.cnf

[mysql-proxy]

admin-address = localhost:4041
admin-username = admin
admin-password = 123456
admin-lua-script = /mnt/mysql-proxy/lib/mysql-proxy/lua/admin.lua

proxy-read-only-backend-addresses = 10.110.22.217:3306;10.12.22.212:3306 (slave server)
proxy-backend-addresses = 10.157.3.54:3306  (master server)
proxy-lua-script=/mnt/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua

proxy-address = 10.15.15.17:4040
log-file = /mnt/mysql-proxy/mysql-proxy.log
log-level = error
daemon = true


启动 /mnt/mysql-proxy/bin/mysql-proxy --defaults-file=/mnt/mysql-proxy/mysql-proxy.cnf

如果报错  mysql-proxy: error while loading shared libraries: libmysql-chassis.so.0: cannot open shared object file: No such file or directory

先执行 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/mnt/mysql-proxy/lib/

参考官网  http://dev.mysql.com/doc/refman/5.0/en/mysql-proxy.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: