##实现数据库的读写分离##
server1:master
server2:slaver
server3:mysql-proxy调度器
实现数据库的调度分离,可以减轻后台服务器压力,实现对数据库访问的读写分离,在实验中
server1为主服务端,写在server1上进行,而读在server2上实现,饰演环境为server1、
server上安装好数据库,并且可以正常的实现主从复制。
检查server1、server2的主从同步情况
server1上: mysql -p
Enter password:
mysql> show master status;
1 row in set (0.00 sec)
mysql> mysql> grant select,insert,update on westos.* to lp@’%’ identified by ‘Redhat-1’; ##给用户对wests库远程登陆、读写、更新权限##
在server2上: mysql -p
Enter password:
mysql> show slave status\G
mysql> set global read_only=1;
server3调度器的操作
yum install mysql
mysql-proxy-0.8.5-linux-el6-x86-64bit.tar.gz
tar zxf mysql-proxy-0.8.5-linux-el6-x86-64bit.tar.gz
mv mysql-proxy-0.8.5-linux-el6-x86-64bit /usr/local/ ##将插件移动到此目录下##
cd /usr/local/
ln -s mysql-proxy-0.8.5-linux-el6-x86-64bit/ mysql-proxy ##进行软链接##
cd mysql-proxy
mkdir conf ##主配置文件存放目录##
mkdir logs ##日志存放目录##
vim /usr/local/mysql-proxy/share/doc/mysql-proxyrw-splitting.lua ##读写分离策略配置文件##
cd conf
vim mysql-proxy.conf
[mysql-proxy]
user=root ##以root用户运行软件##
daemon=true ##打入后台##
proxy-address=172.25.2.3:3306 ##proxy地址##
proxy-backend-addresses=172.25.2.1:3306 ##可以写后端##
proxy-read-only-backend-addresses=172.25.19.2:3306 ##只读后端##
proxy-lua-script=/usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua ##读写分离配置文件##
log-file=/usr/local/mysql-proxy/logs/mysql-proxy.log ##日志存放##
log-level=debug ##日志级别##
keepalive=true ##持续连接##
cd logs/
ln -s /usr/local/mysql-proxy/bin/mysql-proxy /usr/local/bin/
chmod 660 /usr/local/mysql-proxy/conf/mysql-proxy.conf ##如果此插件的权限过大则mysql-proxy开启失败##
/usr/local/mysql-proxy/bin/mysql-proxy --plugins=proxy --defaults-file=/usr/local/mysql-proxy/conf/mysql-proxy.conf ##开启调用的插件和主配置文件位置##
yum install net-tools -y
netstat -antlp ##mysql-proxy:3306
测试在物理机上:
mysql -h 172.25.19.3 -u www -p ##远程登陆
Enter password:
yum install lsof -y
lsof -i :3306 ##查看3306端口的连接情况(server3有连接)
yum install lsof -y
lsof -i :3306
第一、二次连接都是连接到了server1
从第三次开始负载均衡