centos 6.5 实现Mysql 数据库读写分离

虾米哥 阅读:663 2021-03-31 21:51:08 评论:0

本文参考和借鉴:构建高性能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找原因








标签:mysql
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号