一、 安装mariadb 和配置ntp
1、 安装mariadb数据库
1)
安装mariadb数据库

[root@centos01 ~]# rm -rf /etc/yum.repos.d/CentOS-*
[root@centos01 ~]# mount /dev/cdrom /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@centos01 ~]# yum -y install mariadb mariadb-server
[root@centos02 ~]# yum -y install mariadb mariadb-server
[root@centos03 ~]# yum -y install mariadb mariadb-server
[root@centos04 ~]# yum -y install mariadb mariadb-server
2)
启动maridb数据库服务

[root@centos01 ~]# systemctl start mariadb
[root@centos01 ~]# systemctl enable mariadb
[root@centos02 ~]# systemctl start mariadb
[root@centos02 ~]# systemctl enable mariadb
[root@centos03 ~]# systemctl start mariadb
[root@centos03 ~]# systemctl enable mariadb
[root@centos04 ~]# systemctl start mariadb
[root@centos04 ~]# systemctl enable mariadb
3)
设置访问数据库密码

[root@centos01 ~]# mysqladmin -uroot password
New password:
Confirm new password:
[root@centos02 ~]# mysqladmin -uroot password
[root@centos03 ~]# mysqladmin -uroot password
[root@centos04 ~]# mysqladmin -uroot password
2、 配置ntp同步时间
1)
修改ntp主配置文件

[root@centos01 ~]# vim /etc/ntp.conf
18 restrict 192.168.100.0 mask 255.255.255.0 nomodify notrap
19 server 127.127.1.0
20 fudeg 127.127.1.0 stratum 8
2)
启动ntp服务

[root@centos01 ~]# systemctl start ntpd
[root@centos01 ~]# systemctl enable ntpd
3)
其他mariadb同步时间

[root@centos02 ~]# ntpdate 192.168.100.10
16 Apr 23:56:24 ntpdate[40708]: step time server 192.168.100.10 offset -0.712462 sec

[root@centos03 ~]# ntpdate 192.168.100.10
16 Apr 23:56:27 ntpdate[1584]: adjust time server 192.168.100.10 offset 0.105406 sec

[root@centos04 ~]# ntpdate 192.168.100.10
16 Apr 23:56:30 ntpdate[1668]: adjust time server 192.168.100.10 offset -0.183521 sec
二、 配置mariadb主主复制和主从复制
1、 修改mariadb主配置文件
1)
修改主配置文件

[root@centos01 ~]# vim /etc/my.cnf
[mysqld]
log-bin=mysql-bin
log-slave-updates=true
server-id=10
[root@centos01 ~]# systemctl restart mariadb

[root@centos02 ~]# vim /etc/my.cnf
[mysqld]
log-bin=mysql-bin
log-slave-updates=true
server-id=20
[root@centos02 ~]# systemctl restart mariadb
2、 配置从mariadb主配置文件
1)
修改主配置文件

[root@centos03 ~]# vim /etc/my.cnf
[mysqld]
log-bin=mysql-bin
server-id=30
relay-log=relay-log-bin
relay-log-index=relay-slave-bin.index
[root@centos03 ~]# systemctl restart mariadb

[root@centos04 ~]# vim /etc/my.cnf
[mysqld]
log-bin=mysql-bin
server-id=40
relay-log=relay-log-bin
relay-log-index=relay-slave-bin.index
[root@centos04 ~]# systemctl restart mariadb
3、 配置主主复制
1)
授权数据复制账户slave密码pwd@123

[root@centos01 ~]# mysql -uroot -ppwd@123
MariaDB [(none)]> grant replication slave on . to ‘slave’@‘192.168.100.%’ identified by ‘pwd@123’;
Query OK, 0 rows affected (0.00 sec)

[root@centos02 ~]# mysql -uroot -ppwd@123
MariaDB [(none)]> grant replication slave on . to ‘slave’@‘192.168.100.%’ identified by ‘pwd@123’;
Query OK, 0 rows affected (0.00 sec)
2)
配置主主复制

[root@centos01 ~]# mysql -uroot -ppwd@123
MariaDB [(none)]> show master status;
在这里插入图片描述
[root@centos02 ~]# mysql -uroot -ppwd@123
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=401;
Query OK, 0 rows affected (0.01 sec)
3)
启动slave查看

MariaDB [(none)]> start slave;
MariaDB [(none)]> show slave status\G;
在这里插入图片描述
4)
配置第二台主
[root@centos02]# mysql -uroot -ppwd@123
MariaDB [(none)]> show master status;
在这里插入图片描述
[root@centos01 ~]# mysql -uroot -ppwd@123
MariaDB [(none)]> change master to master_host=‘192.168.100.20’,master_user=‘slave’,master_password=‘pwd@123’,master_log_file=‘mysql-bin.000001’,master_log_pos=401;
Query OK, 0 rows affected (0.00 sec)
5)
启动slaved查看

MariaDB [(none)]> start slave;
MariaDB [(none)]> show slave status\G;
在这里插入图片描述
6)
测试主主复制

[root@centos01 ~]# mysql -uroot -ppwd@123
MariaDB [(none)]> create database cheng;
Query OK, 1 row affected (0.00 sec)

[root@centos02~]# mysql -uroot -ppwd@123
MariaDB [(none)]> show databases;
在这里插入图片描述
[root@centos02~]# mysql -uroot -ppwd@123
MariaDB [(none)]> create database qaq;
Query OK, 1 row affected (0.00 sec)

[root@centos01 ~]# mysql -uroot -ppwd@123
MariaDB [(none)]> show databases;
在这里插入图片描述
4、 配置主从复制
1)
配置主从复制

[root@centos01 ~]# mysql -uroot -ppwd@123
MariaDB [(none)]> show master status;
在这里插入图片描述
[root@centos03 ~]# mysql -uroot -ppwd@123
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=729;
Query OK, 0 rows affected (0.01 sec)
2)
启动slave查看

MariaDB [(none)]> start slave;
MariaDB [(none)]> show slave status\G;
在这里插入图片描述
3)
配置第二台从

[root@centos01 ~]# mysql -uroot -ppwd@123
MariaDB [(none)]> show master status;
在这里插入图片描述
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=729;
Query OK, 0 rows affected (0.01 sec)
4)
启动slave查看

MariaDB [(none)]> start slave;
MariaDB [(none)]> show slave status\G;
在这里插入图片描述
4)
测试主从复制
第一台主创建qaq数据库

MariaDB [(none)]> create database qaq;
Query OK, 1 row affected (0.00 sec)
主和从查看
在这里插入图片描述
在这里插入图片描述
第二台主创建aaa其他主和从查看
MariaDB [(none)]> create database aaa;
Query OK, 1 row affected (0.00 sec)
在这里插入图片描述
在这里插入图片描述
三、 配置mariadb读写分离
1、 配置maridb读写分离
1)
设置hosts文件

[root@centos01 ~]# 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)
复制hosts文件到其他节点

[root@centos01 ~]# scp /etc/hosts root@192.168.100.20:/etc/
[root@centos01 ~]# scp /etc/hosts root@192.168.100.30:/etc/
[root@centos01 ~]# scp /etc/hosts root@192.168.100.40:/etc/
[root@centos01 ~]# scp /etc/hosts root@192.168.100.50:/etc/
3)
amoeba服务器同步时间

[root@centos05 ~]# ntpdate 192.168.100.10
26 ar 15:42:04 ntpdate[39976]: step time server 192.168.100.10 offset -28800.726371 sec
2、安装并配置JDK和amoeba
1)
安装jdk

在这里插入图片描述
[root@centos05 ~]# rm -rf /etc/yum.repos.d/CentOS-*
[root@centos05 ~]# mount /dev/cdrom /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@centos05 ~]# cp /mnt/jdk-6u14-linux-x64.bin /usr/src/
[root@centos05 ~]# cd /usr/src/
[root@centos05 src]# ./jdk-6u14-linux-x64.bin
Do you agree to the above license terms? [yes or no]
Yes
[root@centos05 ]# mv /usr/src/jdk1.6.0_14/ /usr/local/jdk
2)
安装amoeba

[root@centos05 ~]# mkdir /usr/local/amoeba
[root@centos05 ~]# tar zxvf /mnt/amoeba-mysql-binary-2.2.0.tar.gz -C /usr/local/amoeba/
3)
配置jdk环境变量

[root@centos05 ~]# vim /etc/profile.d/java
export JAVA_HOME=/usr/local/jdk/
export CLASSPATH=CLASSPATH:CLASSPATH:CLASSPATH:JAVA_HOME/lib:JAVAHOME/jre/lib/exportPATH=JAVA_HOME/jre/lib/ export PATH=JAVAH​OME/jre/lib/exportPATH=JAVA_HOME/lib:JAVAHOME/jre/bin:JAVA_HOME/jre/bin:JAVAH​OME/jre/bin:PATH:HOME/binexportAMOEBAHOME=/usr/local/amoeba/exportPATH=HOME/bin export AMOEBA_HOME=/usr/local/amoeba/ export PATH=HOME/binexportAMOEBAH​OME=/usr/local/amoeba/exportPATH=PATH:$AMOEBA_HOME/bin
[root@centos05 ~]# source /etc/profile.d/java
4)
检查jdk版本

[root@centos05 ~]# java -version
在这里插入图片描述
5)
授权amoeba账户和密码访问mariadb数据库

[root@centos01 ~]# mysql -uroot -ppwd@12
MariaDB [(none)]> grant all on . to ‘bob’@‘192.168.100.%’ identified by ‘pwd@123’;
Query OK, 0 rows affected (0.00 sec)
6)
配置修改amoeba主配置文件连接账户密码

[root@centos05 ~]# vim /usr/local/amoeba/conf/amoeba.xml
30 amoeba
32 pwd@123
115 centos01
117 centos01
118 slaves
在这里插入图片描述
在这里插入图片描述
7)
添加主从服务器到创建的计算机池中

[root@centos05 ~]# vim /usr/local/amoeba/conf/dbServers.xml
26 bob
28 pwd@123
43
44
45 192.168.100.10
46
47
48
49
50
51 192.168.100.30
52
53
54
55
56
57 192.168.100.40
58
59
60
61
62 1
63
64 centos03,centos04
65
66
67
68 </amoeba:dbServers>
在这里插入图片描述
在这里插入图片描述
8)
启动amoeba服务,监听8600

[root@centos05 ~]# /usr/local/amoeba/bin/amoeba start&
[root@centos05 ~]# netstat -anptu | grep 8066
在这里插入图片描述
3、客户端验证读写分离
1)
安装mariadb客户端

[root@centos06 ~]# rm -rf /etc/yum.repos.d/CentOS-*
[root@centos06 ~]# mount /dev/cdrom /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@centos06 ~]# yum -y install mariadb
2)
登陆amoeba服务器,账户amoeba密码pwd@123

[root@centos06 ~]# mysql -uamoeba -ppwd@123 -h 192.168.100.50 -P8066
3)
在qaq库中创建aaa表并写入数据

MySQL [(none)]> create table qaq.aaa (姓名 char(4),电话 char(11));
Query OK, 0 rows affected (0.01 sec)
MySQL [(none)]> insert into qaq.aaa values (‘王二’,‘11111111111’);
Query OK, 1 row affected (0.01 sec)
4)
主和从查看

[root@centos01 ~]# mysql -uroot -ppwd@123
MariaDB [(none)]> select * from qaq.aaa;
在这里插入图片描述
[root@centos03 ~]# mysql -uroot -ppwd@123
在这里插入图片描述
5)
停掉两个从节点,mariadb客户端在插入数据

MariaDB [(none)]> stop slave;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> stop slave;
Query OK, 0 rows affected (0.00 sec)

MySQL [(none)]> insert into qaq.aaa values (‘李四’,‘22222222222’);
Query OK, 1 row affected, 1 warning (0.00 sec)
6)
主、从节点和mariadb客户端查看

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
7)
开启两个从节点mariadb在查看

MariaDB [(none)]> start slave;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> start slave;
Query OK, 0 rows affected (0.00 sec)
在这里插入图片描述
在这里插入图片描述

更多推荐