一个完整的mysql读写分离环境包括以下几个部分:
应用程序client
database proxy
database集群
在本次实战中,应用程序client基于c3p0连接后端的database proxy。database proxy负责管理client实际访问database的路由策略,采用开源框架amoeba。database集群采用mysql的master-slave的replication方案。整个环境的结构图如下所示:
实战步骤与详解
-slave环境
1)分别在host1()和host2()上安装mysql(),具体安装方法可见官方文档
2)配置master
首先编辑/etc/,添加以下配置:
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 ******@ IDENTIFIED BY '';
重启mysql,使得配置生效:
/etc/ restart
最后查看master状态:
3)配置slave
首先编辑/etc/,添加以下配置:
server-id=2 #slave的标示
配置生效后,配置与master的连接:
mysql> CHANGE MASTER TO
-> MASTER_HOST='',
-> MASTER_USER='repl',
-> MASTER_PASSWORD='',
-> MASTER_LOG_FILE='mysql-bin.',
-> MASTER_LOG_POS=;
其中MASTER_HOST是master机的ip,MASTER_USER和MASTER_PASSWORD就是我们刚才在master上添加的用户,MASTER_LOG_FILE和MASTER_LOG_POS对应与master status里的信息
最后启动slave:
mysql> start slave;
4)验证master-slave搭建生效
通过查看slave机的log(/var/log/):
10:51:42 [Note] Slave I/O thread: connected to master '******@:3306', replication started in log 'mysql-bin.' at position
如看到以上信息则证明搭建成功,如果有问题也可通过此log找原因
proxy
此次实战中database proxy采用amoeba ,它的相关信息可以查阅官方文档,不在此详述
1)安装amo
mysql读写分离实现 来自淘豆网m.daumloan.com转载请标明出处.