mariadb数据库主主复制读写分离

一、 同步时间
1、配置ntp主配置文件(仅一台)

[root@centos01 ~]# vim /etc/ntp.conf
#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
restrict 192.168.100.0 mask 255.255.255.0 nomodify notrap
server 127.127.1.0
fudeg 127.127.1.0 stratum 8
[root@centos01 ~]# systemctl restart ntpd
[root@centos01 ~]# systemctl enable ntpd
2、同步时间(其余三台)
ntpdate 192.168.100.10
systemctl enable ntpd

二、 安装mariadb数据库

yum install -y mariadb mariadb-server
systemctl start mariadb
systemctl enable mariadb
mysqladmin -uroot password
New password: #输入密码
Confirm new password:确认密码

三、 配置主主从复制
1、 修改主mariadb数据库主配置文件(两主相同)

vim /etc/my.cnf
[mysqld]
log-bin=mysql-bin		#开启二进制日志
log-slave-updates=true		#允许从复制日志
server-id=10	#另一台主的id为20,设置master的ID小优先级高
relay-log=relay-log-bin
relay-log-index=relay-slave-bin.index
systemctl restart mariadb	#重启服务

2、 修改从mariadb数据库主配置文件

vim /etc/my.cnf
[mysqld]
log-bin=mysql-bin		#开启二进制日志
relay-log=relay-log-bin		#设置读取日志
relay-log-index=relay-slave-bin.index	#设置同步主服务器日志
server-id=30	#另一台从的id为40		#数据库ID
systemctl restart mariadb	#重启服务

3、 在两台数据库,创建数据库数据复制账户

mysql -uroot -p
Enter password:输入密码
MariaDB [(none)]> grant replication slave on *.* to 'slave'@'192.168.100.%' identified by 'pwd@123';

4、 查看主节点状态
#第一台:
MariaDB [(none)]> show master status;
±-----------------±---------±-------------±-----------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
±-----------------±---------±-------------±-----------------+
| mysql-bin.000001 | 401 | | |
±-----------------±---------±-------------±-----------------+
#第二台:
MariaDB [(none)]> show master status;
±-----------------±---------±-------------±-----------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
±-----------------±---------±-------------±-----------------+
| mysql-bin.000001 | 401 | | |
±-----------------±---------±-------------±-----------------+
5、 配置主主从复制
在这里插入图片描述

reset重置slave
#由于我不小心创建了个用户,导致日志位置发生改变,此时应以改变后的日志状态为准。
在这里插入图片描述
#配置另一台主服务器:

MariaDB [(none)]> change master to master_host='192.168.100.10',master_user='slave',master_password='pwd@123',master_log_file='mysql-bin.000001',master_log_pos=554;
MariaDB [(none)]> start slave;
MariaDB [(none)]> show slave status\G

在这里插入图片描述
验证:在主主复制中未配置两从的主机创建数据库或表,在两从查看。
然后在配置两从的主机删除,查看两从。
四、 读写分离
1、 绑定host解析域名(五台操作相同,可使用scp命令快速完成)

vim /etc/hosts
192.168.100.10 centos01
192.168.100.20 centos02
192.168.100.30 centos03
192.168.100.40 centos04
192.168.100.50 centos05

2、安装jdk(二进制文件)和amoeba(绿色文件),(这里需替换系统原来的jdk)

[root@centos05 ~]# cp /mnt/jdk-6u14-linux-x64.bin /opt/jdk-source/
[root@centos05 ~]# cd /opt/jdk-source/
[root@centos05 jdk-source]# ./jdk-6u14-linux-x64.bin
[root@centos05 ~]# cp -a /opt/jdk-source/jdk1.6.0_14/* /opt/jdk 
[root@centos05 ~]# tar zxvf /mnt/amoeba-mysql-binary-2.2.0.tar.gz -C /opt/amoeba/

3、配置环境变量

[root@centos05 ~]# vim /etc/profile.d/java
export JAVA_HOME=/opt/jdk/
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib/
export PATH=$JAVA_HOME/lib:$JAVA_HOME/jre/bin:$PATH:$HOME/bin
export AMOEBA_HOME=/opt/amoeba/
export PATH=$PATH:$AMOEBA_HOME/bin
[root@centos05 ~]# source /etc/profile.d/java

在这里插入图片描述
4、授权通过amoeba访问主mysql数据库和从mysql数据库的账户,
拥有我完全控制权限。(在一台主授权即可)

MariaDB [(none)]> grant all on *.* to 'bob'@'192.168.100.%' identified by 'pwd@123';

5、修改amoeba配置文件

[root@centos05 ~]# vim /opt/amoeba/conf/amoeba.xml

在这里插入图片描述
在这里插入图片描述

[root@centos05 ~]# vim /opt/amoeba/conf/dbServers.xml

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
6、启动amoeba

[root@centos05 ~]# /opt/amoeba/bin/amoeba start&
[root@centos05 ~]# netstat -anptu | grep 8066

7、客户端测试

[root@centos06 ~]# yum install -y mariadb
[root@centos06 ~]# mysql -h 192.168.100.50 -P8066 -uamoeba -p
Enter password:输入密码

#在客户端创建数据库,并在从主机查看
在这里插入图片描述
#然后关闭两个从主机,并在客户端查看
在这里插入图片描述
#再次开启从节点依然可以查看
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值