centos 6.5 实现Mysql 数据库读写分离
本文参考和借鉴:构建高性能web之路------mysql读写分离实战
在本次实战中,应用程序client基于c3p0连接后端的database proxy。database proxy负责管理client实际访问database的路由策略,采用开源框架amoeba。database集群采用mysql的master-slave的replication方案。整个环境的结构图如下所示:
一.搭建mysql的master-slave环境
1)分别在host1(120.25.56.93)和host2(120.76.112.207)上安装mysql(5.10.16),具体安装方法可查考本篇文章:centos 6.5 源码安装MySQL-5.10.16和root 账号密码设置
2)配置master
首先编辑/etc/my.cnf,添加以下配置:
log-bin=mysql-bin #slave会基于此log-bin来做replication
server-id=1 #master的标示
binlog-do-db = amoeba_study #用于master-slave的具体数据库
然后添加专门用于replication的用户:
mysql> GRANT REPLICATION SLAVE ON *.* TO repl@120.76.112.207 IDENTIFIED BY '111111';
重启mysql,使得配置生效:
#service mysql restart
最后查看master状态:
3)配置slave
首先编辑/etc/my.cnf,添加以下配置:
server-id=2 #slave的标示
配置生效后,配置与master的连接:
mysql> CHANGE MASTER TO
-> MASTER_HOST='120.25.56.93',
-> MASTER_USER='repl',
-> MASTER_PASSWORD='111111',
-> MASTER_LOG_FILE='mysql-bin.000003',
-> MASTER_LOG_POS=161261;
其中MASTER_HOST是master机的ip,MASTER_USER和MASTER_PASSWORD就是我们刚才在master上添加的用户,MASTER_LOG_FILE和MASTER_LOG_POS对应与master status里的信息
重启mysql,使得配置生效:
#service mysql restart
最后启动slave:
mysql> start slave;
4)验证master-slave搭建生效
查考slave 机的进程信息:# ps aux|grep mysql
通过mysql 显示的进程信息:我们发现了一个--log-error=/db/mysql/data/***错误日志信息。
我们查看错误日志信息:#cat /db/mysql/data/iz94phz01rnZ.err
如看到以上信息则证明搭建成功,如果有问题也可通过此log找原因
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。