Mysql主从同步及其读写分离的实现过程
作者 佚名技术
来源 Linux系统
浏览
发布时间 2012-03-27
roxy配置过程:
一、必备软件: 1、LUA 可以去LUA的官方下载:www.lua.org 2、MySQL Proxy 这里有好多二进制版本. http://mysql.cdpa.nsysu.edu.tw/Downloads/MySQL-Proxy/ 或者去MYSQL官方下载源代码. 三、安装体验 1、 LUA的安装 [root@localhost ~]#tar zxvf lua-5.1.2.tar.gz -C /usr/local [root@localhost ~]# cd /usr/local/ [root@localhost local]# mv lua-5.1 lua [root@localhost lua]# cd lua [root@localhost lua]#make local;make install; 导出环境变量: [root@localhostlua]#export LUA_CFLAGS="-I/usr/local/include" LUA_LIBS="-L/usr/local/lib -llua -ldl" LDFLAGS="-lm" 2、MySQL Proxy 安装 [root@localhost ~]#tar -zxvf mysql-proxy-0.8.1-linux-rhel5-x86-32bit.tar.gz -C /usr/local/mysql/ [root@localhost ~]#cd /usr/local/mysql [root@localhost mysql]#mv mysql-proxy-0.6.1-linux-rhel4-x86-32bit/ mysql-proxy [root@localhost sbin]# export PATH=$PATH:/usr/local/mysql/mysql-proxy/sbin/ 四、使用MySQL Proxy mysql proxy就是一个中间层代理,也可以说是一个连接池,负责将前台应用的连接请求转发给后台的数据库,并且通过使用lua脚本,可以实现复杂的连接控制和过滤,从而实现读写分离和负载均衡,对用户来说,mysql proxy完全透明,应用则只需连接到mysql proxy的监听端口即可.
1、查看帮助选项 [root@localhost ~]#、启动MySQL-Proxy(测试读写分离) mysql-proxy --help-all 3 [root@localhost ~]# cd /opt/mysql-proxy/bin [root@localhost ~]#./mysql-proxy --admin-username=admin --admin-password=admin --proxy-read-only-backend-addresses=172.16.10.12:3306 --proxy-backend-addresses=127.0.0.1:3306 --proxy-lua-script=/usr/local/mysql/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua --admin-lua-script=/usr/local/mysql/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua --daemon --max-open-files=1500 备注: --daemon 采用daemon方式启动 --admin-address=:4401 指定mysql proxy的管理端口,在这里,表示本机的4401端口 --proxy-address=:4040 指定mysql proxy的监听端口,也可以用 127.0.0.1:4040表示 --proxy-backend-addresses=127.0.0.1:3306 指定mysql主机的端口 --proxy-read-only-backend-addresses=172.16.10.12:3306 指定另一个只读的mysql主机端口 --proxy-lua-script=/usr/local/share/mysql-proxy/rw-splitting.lua 指定lua脚本,在这里,使用的是rw-splitting脚本,用于读写分离 问题:网站在使用mysql proxy连接数据库时网站出现乱码 (不使用时正常) 网友分析:连接上mysql proxy后,执行查询时,随即出现乱码,出现此问题的原因是当我们使用mysql proxy读写分离时,通常会有多个后端服务器,客户端发出查询请求时,一般会先发出一条类似于“SET NAME utf8”的语句来声明客户端编码,然后再发出实际查询的SQL语句 ,但mysql proxy可能会把两条语句分发给不同的后端数据库,于是就出现了乱码. 解决方法: 强制指定后端服务器的字符编码: [mysqld] init-connect=''SET NAME utf8'' default-character-set=utf8 skip-character-set-client-handshake 重启mysql服务 然后用phpmyadmin测试,就可以正常使用了!(phpmyadmin使用的是utf8编码)
本文出自 “Just do it !” 博客,请务必保留此出处http://wjpinrain.blog.51cto.com/1109471/659854
|
|||
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: Linux启动过程下一篇: 总结WEB服务器搭建(一)
关于Mysql主从同步及其读写分离的实现过程的所有评论