一、 同步时间
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:输入密码
#在客户端创建数据库,并在从主机查看
#然后关闭两个从主机,并在客户端查看
#再次开启从节点依然可以查看