lvs mysql_简单lvs+mysql读写分离

本文详细介绍了如何通过LVS负载均衡器配置一个简单的读写分离系统,包括LVS分发器的设置、MySQL主从配置、Apache与PHP的调整,以及客户端测试,确保读操作从从库获取数据,写操作则由主库处理。
摘要由CSDN通过智能技术生成

示意图

2b622bc0de1c9a81c1b5e52e794e065e.png

服务器                                                   IP

Apache---------------------------------192.168.11.2

分发器----------------------------------192.168.0.254   --------eth0:0  192.168.11.254

Mysql-master---------------------------192.168.11.1

Mysql-slave 1---------------------------192.168.0.1

Mysql-slave 2-------------------------- 192.168.0.2

配置过程

1、分发器配置

1)安装ipvsadm

#mount  /dev/cdrom  /mnt        挂载光盘

#cd  /mnt/Cluster

#rpm  - ivh  ipvsadm-....         安装ipvsadm

2)配置ipvsadm

#ipvsadm -A  -t 192.168.11.254:3306  -s  rr       增加服务

-A 添加服务  -t 服务所使用的虚拟ip地址:mysql端口  -s  rr算法 (均分)

DNAT#ipvsadm -a -t 192.168.11.254:3306 -r 192.168.0.1 -m

DNAT#ipvsadm -a -t 192.168.11.254:3306 -r 192.168.0.2 -m

-a  添加real server  -r real server的ip -m (nat模式)

3)查看一下设置

DNAT#ipvsadm -ln

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

-> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  192.168.11.254:3306 rr

-> 192.168.0.1:3306            Masq    1      0          0

-> 192.168.0.2:3306            Masq    1      0          0

4)开启路由转发

#echo 1 > /proc/sys/net/ipv4/ip_forward

5)确认路由转发是否开启

sysctl -p

net.ipv4.ip_forward = 1

2、mysql配置

1)安装mysql

#yum install mysql mysql-server -y      提前配置yum源

2)master:

vim /etc/my.cnf

[mysqld]

server_id = 1

slave:

vim /etc/my.cnf

[mysqld]

server_id = 2

master:

vim /etc/my.cnf

[mysqld]

server_id = 1

log-bin=binlog

log-bin-index=binlog.index

slave:

vim /etc/my.cnf

[mysqld]

server_id = 2

relay_log = /var/lib/mysql/mysql-relay-bin

relay_log_index=/var/lib/mysql/mysql-relay-bin.index

master && slave

service mysqld restart

master:

mysql> GRANT replication slave ON *.* TO 'alex'@'%' identified by '123';

Query OK, 0 rows affected (0.05 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

slave:

cd /var/lib/mysql

rm -fr *

service mysqld restart

master

mysqldump -A -x > /tmp/full.sql

scp /tmp/full.sql root@192.168.0.1:/tmp/

scp /tmp/full.sql root@192.168.0.2:/tmp/

slave:

mysql 

master:

mysql> flush tables with read lock;

mysql> show master status;

+---------------+----------+--------------+------------------+

| File          | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+---------------+----------+--------------+------------------+

| binlog.000001 |      367|              |                  |

mysql>unlock tables;

slave:

mysql>change master to master_host='192.168.11.1',master_port=3306,                   master_user='alex',master_password='123', master_log_file='binlog.000001',master_log_pos=367;

mysql> start slave;

slave:

mysql> show slave status \G

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

测试写数据用户

master:

mysql> GRANT all privileges ON *.* TO 'tom'@'%' identified by '123';

Query OK, 0 rows affected (0.05 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

3、apache && PHP配置

1)安装apache && PHP

#yum  install  httpd*  php  php-mysql  -y

2)修改写入数据脚本

#vim  /var/www/html/mysql-c.php

$con = mysql_connect("192.168.11.1","tom","123");

#vim  /var/www/html/inster.php

$con = mysql_connect("192.168.11.1","tom","123");

3)修改读出数据脚本

#vim  /var/www/html/mysql-r.php

$con = mysql_connect("192.168.11.254","tom","123");

4、客户端测试

可以通过人为service mysqld stop来观察读出数据的效果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值