MySQL数据库同步服务器的数据读写分离配置。
通过配置读写分离,利用一个服务器,写入数据时,自动定向到主服务器;需要读取数据时,自动定向到从服务器,或主服务器。
一台新的主机,进行如下配置:
下载软件包:
yum -y install maxscale-2.1.2-1.rhel.7.x86_64.rpm vim /etc/maxscale.cnf 9 [maxscale] 10 threads=auto 线程个数 18 [server1] 19 type=server 20 address=192.168.4.51 21 port=3306 22 protocol=MySQLBackend 24 [server2] 添加server主机 25 type=server 26 address=192.168.4.52 27 port=3306 28 protocol=MySQLBackend 37 [MySQL Monitor] 定义监控服务 38 type=monitor 39 module=mysqlmon 40 servers=server1,server2 41 user=myuser1 42 passwd=mypwd..A123 43 monitor_interval=10000 52 #[Read-Only Service] 定义只读(注释不指定) 53 #type=service 54 #router=readconnroute 55 #servers=server1 56 #user=myuser 57 #passwd=mypwd 58 #router_options=slave 65 [Read-Write Service] 定义读写分离服务 66 type=service 67 router=readwritesplit 68 servers=server1,server2 在server1,2服务器之间进行 69 user=myuser 不同用户操作不同的事情,所以与监控服务器指定的用户不同 70 passwd=mypwd..A123 71 max_slave_connections=100% 75 [MaxAdmin Service] 定义管理服务 76 type=service 77 router=cli 85 #[Read-Only Listener] 定义只读服务(注释不定义) 86 #type=listener 87 #service=Read-Only Service 88 #protocol=MySQLClient 89 #port=4008 91 [Read-Write Listener] 读写分离服务 92 type=listener 93 service=Read-Write Service 94 protocol=MySQLClient 95 port=4006 97 [MaxAdmin Listener] 定义管理服务 98 type=listener 99 service=MaxAdmin Service 100 protocol=maxscaled 101 socket=default 102 port=4016 指定端口号,默认4009
主服务器上授权操作(从服务器会自动同步):
grant replication slave, replication client on *.* to myuser1@'%' identified by 'mypwd..A123'; grant select on mysql.* to myuser@'%' identified by 'mypwd..A123';
分离服务器上的操作:
maxscale -f /etc/maxscale.cnf 启动服务 pkill -9 maxscale 杀进程,停服务 maxadmin -P4016 -uadmin -pmariadb 登陆管理服务器 MaxScale> list servers 查看管理服务器
下面是测试配置是否可行:
grant all on db.* to student@'%' identified by '111AAAaaa.'; 在51新建用户
mysql -h192.168.4.56 -P4006 -ustudent -p111AAAaaa. 其他虚拟机登陆,读写测试
发表评论