一、 同步时间
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、 配置主主从复制

innobackupex mariadb 主从 mariadb主从切换_linux

reset重置slave

#由于我不小心创建了个用户,导致日志位置发生改变,此时应以改变后的日志状态为准。

innobackupex mariadb 主从 mariadb主从切换_centos_02


#配置另一台主服务器:

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

innobackupex mariadb 主从 mariadb主从切换_mysql_03


验证:在主主复制中未配置两从的主机创建数据库或表,在两从查看。

然后在配置两从的主机删除,查看两从。

四、 读写分离

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

innobackupex mariadb 主从 mariadb主从切换_数据库_04


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

innobackupex mariadb 主从 mariadb主从切换_数据库_05


innobackupex mariadb 主从 mariadb主从切换_centos_06

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

innobackupex mariadb 主从 mariadb主从切换_数据库_07


innobackupex mariadb 主从 mariadb主从切换_mysql_08


innobackupex mariadb 主从 mariadb主从切换_linux_09


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:输入密码

#在客户端创建数据库,并在从主机查看

innobackupex mariadb 主从 mariadb主从切换_数据库_10


#然后关闭两个从主机,并在客户端查看

innobackupex mariadb 主从 mariadb主从切换_mysql_11


#再次开启从节点依然可以查看

innobackupex mariadb 主从 mariadb主从切换_centos_12