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

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

[[email protected] ~]# systemctl start mariadb
[[email protected] ~]# systemctl enable mariadb
[[email protected] ~]# systemctl start mariadb
[[email protected] ~]# systemctl enable mariadb
[[email protected] ~]# systemctl start mariadb
[[email protected] ~]# systemctl enable mariadb
[[email protected] ~]# systemctl start mariadb
[[email protected] ~]# systemctl enable mariadb
3)
设置访问数据库密码

[[email protected] ~]# mysqladmin -uroot password
New password:
Confirm new password:
[[email protected] ~]# mysqladmin -uroot password
[[email protected] ~]# mysqladmin -uroot password
[[email protected] ~]# mysqladmin -uroot password
2、 配置ntp同步时间
1)
修改ntp主配置文件

[[email protected] ~]# 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服务

[[email protected] ~]# systemctl start ntpd
[[email protected] ~]# systemctl enable ntpd
3)
其他mariadb同步时间

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

[[email protected] ~]# ntpdate 192.168.100.10
16 Apr 23:56:27 ntpdate[1584]: adjust time server 192.168.100.10 offset 0.105406 sec

[[email protected] ~]# 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)
修改主配置文件

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

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

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

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

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

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

[[email protected] ~]# mysql -uroot [email protected]
MariaDB [(none)]> show master status;
mariadb主主复制、主从复制、读写分离
[[email protected] ~]# mysql -uroot [email protected]
MariaDB [(none)]> change master to master_host=‘192.168.100.10’,master_user=‘slave’,master_password=‘[email protected]’,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;
mariadb主主复制、主从复制、读写分离
4)
配置第二台主
[[email protected]]# mysql -uroot [email protected]
MariaDB [(none)]> show master status;
mariadb主主复制、主从复制、读写分离
[[email protected] ~]# mysql -uroot [email protected]
MariaDB [(none)]> change master to master_host=‘192.168.100.20’,master_user=‘slave’,master_password=‘[email protected]’,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;
mariadb主主复制、主从复制、读写分离
6)
测试主主复制

[[email protected] ~]# mysql -uroot [email protected]
MariaDB [(none)]> create database cheng;
Query OK, 1 row affected (0.00 sec)

[[email protected]~]# mysql -uroot [email protected]
MariaDB [(none)]> show databases;
mariadb主主复制、主从复制、读写分离
[[email protected]~]# mysql -uroot [email protected]
MariaDB [(none)]> create database qaq;
Query OK, 1 row affected (0.00 sec)

[[email protected] ~]# mysql -uroot [email protected]
MariaDB [(none)]> show databases;
mariadb主主复制、主从复制、读写分离
4、 配置主从复制
1)
配置主从复制

[[email protected] ~]# mysql -uroot [email protected]
MariaDB [(none)]> show master status;
mariadb主主复制、主从复制、读写分离
[[email protected] ~]# mysql -uroot [email protected]
MariaDB [(none)]> change master to master_host=‘192.168.100.10’,master_user=‘slave’,master_password=‘[email protected]’,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;
mariadb主主复制、主从复制、读写分离
3)
配置第二台从

[[email protected] ~]# mysql -uroot [email protected]
MariaDB [(none)]> show master status;
mariadb主主复制、主从复制、读写分离
MariaDB [(none)]> change master to master_host=‘192.168.100.10’,master_user=‘slave’,master_password=‘[email protected]’,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;
mariadb主主复制、主从复制、读写分离
4)
测试主从复制
第一台主创建qaq数据库

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

[[email protected] ~]# 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文件到其他节点

[[email protected] ~]# scp /etc/hosts [email protected]:/etc/
[[email protected] ~]# scp /etc/hosts [email protected]:/etc/
[[email protected] ~]# scp /etc/hosts [email protected]:/etc/
[[email protected] ~]# scp /etc/hosts [email protected]:/etc/
3)
amoeba服务器同步时间

[[email protected] ~]# 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

mariadb主主复制、主从复制、读写分离
[[email protected] ~]# rm -rf /etc/yum.repos.d/CentOS-*
[[email protected] ~]# mount /dev/cdrom /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载
[[email protected] ~]# cp /mnt/jdk-6u14-linux-x64.bin /usr/src/
[[email protected] ~]# cd /usr/src/
[[email protected] src]# ./jdk-6u14-linux-x64.bin
Do you agree to the above license terms? [yes or no]
Yes
[[email protected] ]# mv /usr/src/jdk1.6.0_14/ /usr/local/jdk
2)
安装amoeba

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

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

[[email protected] ~]# java -version
mariadb主主复制、主从复制、读写分离
5)
授权amoeba账户和密码访问mariadb数据库

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

[[email protected] ~]# vim /usr/local/amoeba/conf/amoeba.xml
30 amoeba
32 [email protected]
115 centos01
117 centos01
118 slaves
mariadb主主复制、主从复制、读写分离
mariadb主主复制、主从复制、读写分离
7)
添加主从服务器到创建的计算机池中

[[email protected] ~]# vim /usr/local/amoeba/conf/dbServers.xml
26 bob
28 [email protected]
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>
mariadb主主复制、主从复制、读写分离
mariadb主主复制、主从复制、读写分离
8)
启动amoeba服务,监听8600

[[email protected] ~]# /usr/local/amoeba/bin/amoeba start&
[[email protected] ~]# netstat -anptu | grep 8066
mariadb主主复制、主从复制、读写分离
3、客户端验证读写分离
1)
安装mariadb客户端

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

[[email protected] ~]# mysql -uamoeba [email protected] -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)
主和从查看

[[email protected] ~]# mysql -uroot [email protected]
MariaDB [(none)]> select * from qaq.aaa;
mariadb主主复制、主从复制、读写分离
[[email protected] ~]# mysql -uroot [email protected]
mariadb主主复制、主从复制、读写分离
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客户端查看

mariadb主主复制、主从复制、读写分离
mariadb主主复制、主从复制、读写分离
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)
mariadb主主复制、主从复制、读写分离
mariadb主主复制、主从复制、读写分离

相关文章: