mysql设置负载均衡_mysql负载均衡完美解决方案

1.环境:mysql 5ubuntu10.04 x86_64mdb1eth0192.168.5.11mdb2eth0192.168.5.12sdb1eth0192.168.5.21sdb2eth0192.168.5.22sdb3eth0192.168.5.23sdb4...
摘要由CSDN通过智能技术生成

1.环境:

mysql 5

ubuntu10.04 x86_64

mdb1        eth0    192.168.5.11

mdb2        eth0    192.168.5.12

sdb1        eth0    192.168.5.21

sdb2        eth0    192.168.5.22

sdb3        eth0    192.168.5.23

sdb4        eth0    192.168.5.24

haproxy

eth0    192.168.5.10    (mdb  vip write)

eth1    192.168.5.20    (sdb  vip read)

说明:mdb vip用于DB的写,sdb vip用于DB读,实现读写分离和负载均衡,带故障检测自动切换

2.架构图

web1    web2    web3

|              |          |

—————————-

|

haproxy(lb db write/read)

|

———————————-

|                                |

mdb1                     mdb2

|                              |

————–             —————-

|             |              |            |

sdb1    sdb2        sdb3      sdb4

说明:

1)mdb1和mdb1配置成主-主模式,相互同步,通过haproxy提供一个lb的写ip

2)sdb1和sdb2配置为mdb1的从,sdb3和sdb4配置为mdb2的从

3)sdb1,sdb2,sdb3,sdb4这4台从库,通过haproxy提供一个lb的读ip

4) 当mdb2停止复制,mdb1为主库,haproxy停止发送请求到mdb2和sdb3,sdb4

5) 当mdb1停止复制,mdb2为主库,haproxy停止发送请求到mdb1和sdb1,sdb2

6) 当mdb1和mdb2同时停止复制,这时2台主库变成readonly模式,数据库不能写入

7)当mdb2 offline时,mdb1进入backup mode,停止发送请求到mdb2,sdb3,sdb4

8)当mdb1 offline时,mdb2进入backup mode,停止发送请求到mdb1,sdb1,sdb2

9) 当mdb1 mdb2同时offline,整个DB停止工作

3.安装mysql-server

登录mdb1,mdb2,sdb1,sdb2,sdb3,sdb4,输入以下命令进行安装:

apt-get install mysql-server -y

安装时会提示输入mysql root用户密码,输入gaojinbo.com

修改mysql配置,监听所有接口

vi /etc/mysql/my.cnf

修改为:

bind-address            = 0.0.0.0

重启mysql

/etc/init.d/mysql restart

4.配置mdb1,mdb2主-主同步

1)mdb1:

vi /etc/mysql/my.cnf

server-id               = 1

log_bin                 = mysql-bin

log-slave-updates                #很重要,从前一台机器上同步过来的数据才能同步到下一台机器

expire_logs_days        = 10

max_binlog_size         = 100M

auto_increment_offset    = 1

auto_increment_increment = 2

2)mdb2:

vi /etc/mysql/my.cnf

server-id               = 2

log_bin                 = mysql-bin

log-slave-updates                #很重要,从前一台机器上同步过来的数据才能同步到下一台机器

expire_logs_days        = 10

max_binlog_size         = 100M

auto_increment_offset    = 2

auto_increment_increment = 2

3)mdb1和mdb2:

重启mysql

/etc/init.d/mysql restart

添加复制用户

mysql -uroot -pgaojinbo.com

GRANT REPLICATION SLAVE ON *.* TO ‘repl’@’192.168.5.%’ IDENTIFIED BY ‘gaojinbo’;

记录日志文件和pos

mysql -uroot -pgaojinbo.com

show master status\G

4)mdb1:

change master to master_host=’192.168.5.12′,master_port=3306,master_user=’repl’,master_password=’gaojinbo’,master_log_file=’mysql-bin.000003′,master_log_pos=106;

start slave;

show slave status\G

说明:mysql-bin.000003和106是主库配置第3)步记录的信息

出现以下内容,说明同步ok

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

5)mdb2:

change master to master_host=’192.168.5.11′,master_port=3306,master_user=’repl’,master_password=’gaojinbo’,master_log_file=’mysql-bin.000001′,master_log_pos=249;

start slave;

show slave status\G

说明:mysql-bin.000001和249是主库配置第3)步记录的信息

出现以下内容,说明同步ok

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

6)测试主-主同步

mdb1:

mysql -uroot -pgaojinbo.com

show databases;

create database gaojinbo;

mdb2:

mysql -uroot -pgaojinbo.com

show databases;

即可看到在mdb1上建立的数据库gaojinbo

至此mdb1,mdb2主-

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值