mysql数据库实现读写分离,一主一从,使用mysql-proxy实现读写分离。

1.准备三台机子,关闭防火墙,setenforce0

 

192.168.10.25mysql主
192.168.10.60MySQL从
192.168.10.88mysql-proxy

2.现做mysql主从,在主(192.168.10.25)上下载mariadb,启动mysql。

#下载mariadb
yum -y install mariadb*


#启动mariadb
systemctl restart mariadb

3.配置mysql主文件,然后配置数据库密码,启动mariadb。

#配置数据库
vi /etc/my.cnf  加入

log-bin=mysql-bin
server-id=1
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema


#配置数据库密码
Enter current password for root (enter for none):按回车
Switch to unix_socket authentication [Y/n] :按回车
Change the root password? [Y/n]:按回车
New password: 123456  #输入设置数据库的密码 123456 在回车
Re-enter new password: 123456  在输一次123456 按回车
Remove anonymous users? [Y/n] 按回车
Disallow root login remotely? [Y/n] 按回车
Remove test database and access to it? [Y/n] 按回车
Reload privilege tables now? [Y/n] 按回车
Thanks for using MariaDB!  数据库密码配置完毕

#启动mariadb
systemctl restart mariadb

4.进入数据库,创建用户、赋予权限。

#登录数据库
mysql -uroot -p123456


#创建用户
create user 'yz'@'192.168.10.60' identified by '123456';

#赋予权限
grant replication slave on *.* to 'yz'@'%' identified by '123456';
grant replication slave on *.* to 'yz'@'192.168.10.60' identified by '123456';

#刷新权限
flush privileges;

5.创建表和主库上导出数据。

#创建数据库
create database master1;

#导出数据
show master status;

6.配置从机(192.168.10.60),连接主的数据库。

#进入数据库 连接主库
CHANGE MASTER TO  MASTER_HOST='192.168.10.25', MASTER_USER='yz',MASTER_PASSWORD='123456',MASTER_PORT=3306,  MASTER_LOG_FILE='mysql-bin.000003', MASTER_LOG_POS=1901;


#开启复制
start slave;

查看slave状态
show slave status \G;

 是两个yes就代表成功连接数据库。

7.然后配置mysql-proxy(192.168.10.88) ,安装数据库,启动mariadb,配置数据库。

#下载mariadb-server
yum -y install mariadb-server


#启动mariadb
systemctl restart mariadb

#配置数据库密码
Enter current password for root (enter for none):按回车
Switch to unix_socket authentication [Y/n] :按回车
Change the root password? [Y/n]:按回车
New password: 123456  #输入设置数据库的密码 123456 在回车
Re-enter new password: 123456  在输一次123456 按回车
Remove anonymous users? [Y/n] 按回车
Disallow root login remotely? [Y/n] 按回车
Remove test database and access to it? [Y/n] 按回车
Reload privilege tables now? [Y/n] 按回车
Thanks for using MariaDB!  数据库密码配置完毕

8.创建用户mysql-proxy,下载mysql-proxy,解压到指定目录,改目录的名字为mysql-proxy

#创建用户
useradd  -r  mysql-proxy


#下载安装包
wget http://ftp.ntu.edu.tw/pub/MySQL/Downloads/MySQL-Proxy/mysql-proxy-0.8.5-linux-el6-x86-64bit.tar.gz


#解压安装包
tar zxvf mysql-proxy-0.8.5-linux-el6-x86-64bit.tar.gz -C /usr/local

#改目录名字
mv /usr/local/mysql-proxy-0.8.5-linux-el6-x86-64bit  /usr/local/mysql-proxy


# 修改读写分离配置
vi /usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua

min_idle_connections = 1, 
max_idle_connections = 8,


 

9.执行mysql-proxy.

#执行mysql-proxy
/usr/local/mysql-proxy/bin/mysql-proxy --daemon --log-level=debug --user=mysql-proxy --keepalive --log-file=/var/log/mysql-proxy.log --plugins="proxy" --proxy-address="192.168.100.137:4040" --proxy-backend-addresses="192.168.10.25:3306" --proxy-read-only-backend-addresses="192.168.10.60:3306" --proxy-lua-script="/usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua" --plugins=admin --admin-username="admin" --admin-password="admin" --admin-lua-script="/usr/local/mysql-proxy/lib/mysql-proxy/lua/admin.lua"

10.查看mysql的端口号。一共三个端口

#下载
yum -y install net-tools

#查看端口号
netstat -autup | grep mysql

11.测试

#测试,看看是不是up 
mysql -uadmin -padmin -h192.168.10.88 -P4041 -e "select * from backends;"



#如果不是up执行以下命令
mysql -uroot -p123456 -h192.168.10.88 -P4040 -e "show databases;"


结果

13.最后使用mysql-proxy读写分离成功,如果以上报错,请联系小编。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

喜欢研究新东西

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值