主机 | 操作系统 | IP地址 | 主要软件 |
MySQL(master) | CentOS7 | 192.168.43.100 | mysql-5.6.26.tar.gz |
MySQL(slave1) | CentOS7 | 192.168.43.243 | mysql-5.6.26.tar.gz |
MySQL(slave2) | CentOS7 | 192.168.43.221 | mysql-5.6.26.tar.gz |
Amoeba | CentOS7 | 192.168.43.104 | amoeba-mysql-binary-2.2.0.tar.gz jdk-6u14-linux-x64.bin |
Client | CentOS7 | 192.168.43.244 | mariadb-5.5.64-1.el7.x86_64 |
主服务器
yum install ntp -y
vim /etc/ntp.conf
server 127.127.43.0 ##写自己主服务器的IP地址的第三段
fudge 127.127.43.0 stratum 8 ##配置时区
##关闭安全性功能,重启服务
systemctl stop firewalld
setenforce 0
systemctl start ntpd
默认已经配置好MySQL5.6版本,修改MySQL的主配置文件
vim /etc/my.cnf
#指定id号,唯一标识服务器
server-id = 11
#开启二进制日志文件
log-bin=master-bin
#更新从服务器二进制日志
log-slave-updates=ture
#进入数据库
mysql -u root -pabc123
#给从服务器权限,*.*所有数据库的所有表
CRANT REPLICATION SLAVE ON *.* TO 'myslave'@'192.168.43.%' IDENTIFIED BY '123456';
#刷新权限
FLUSH PRIVILEGES;
#查看主服务器的状态,获取file名和position
show master status;
+-------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+-------------------+----------+--------------+------------------+-------------------+
| master-bin.000001 | 411| | | |
+-------------------+----------+--------------+------------------+-------------------+
从服务器
在两台MySQL从服务器上做一样的操作,除了指定的ID号
安装时间服务器,关闭安全性功能,开启服务
yum install ntp ntpdate -y
systemctl start ntpd
systemctl stop firewalld
setenforce 0
时间同步主服务器
/usr/bin/ntpdate 192.168.43.100
#指定id号,服务器的唯一标识(另外一台从服务器上要修改)
server-id = 22
##从服务器上同步日志文件记录
relay-log=relay-log-bin
##定义relay-log的位置和名称
relay-log-index=slave-relay-bin.index
重启服务
service -uroot -pabc123
进入数据库,指定主服务器
change master to master_host='192.168.43.101',
master_user='myslave',
master_password='123456',
master_log_file='master-bin.000001',
master_log_pos=441;
#开启从服务器
start slave;
#查看状态
show slave status\G;
测试主从同步
#把软件包复制到/usr/local下
cp jdk-6u14-linux-x64.bin /usr/local
#执行脚本(交互时,选择yes,用远程终端时弹窗选择否)
bash jdk-6u14-linux-x64.bin
#重命名,方便管理
mv jdk-1.6.0_14 /usr/local/jdk1.6
#配置环境变量
vim /et/profile
export JAVA_HOME=/usr/local/jdk1.6
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=/usr/local/amoeba
export PATH=$PATH:$AMOEBA_HOME/bin
#使环境变量生效
source /etc/profile
#解压amoeba包
mkdir /usr/local/amoeba
tar zxvf amoeba-mysql-binary-2.2.0.tar.gz -C /usr/local/amoeba/
##给予权限,且验证安装是否成功
chmod -R 755 /usr/local/amoeba/
/usr/local/amoeba/bin/amoeba
#出现下列代码说明成功
[root@localhost ~]# /usr/local/amoeba/bin/amoeba
amoeba start|stop
[root@localhost ~]#
cd /usr/local/amoeba
vim conf/amoeba.xml
第30行:amoeba
第32行:123456
117行去掉注释,且修改下列标签
master
master
slaves
vim conf/dbServers.xml
#26-29行:去掉注释,设置登录用户名和密码
test
123.com
##找到主服务器和从服务器模块,修改好名称和对应IP地址:
#主服务器:
192.168.43.100
#第一台从服务器:
192.168.43.243
#第二台从服务器:
192.168.43.221
#指定从服务器池:
slave1,slave2
##放到后台执行
/usr/local/amoeba/bin/amoeba start&
##查看服务
[root@localhost ~]# netstat -antp|grep java
tcp6 0 0 127.0.0.1:38258 :::* LISTEN 61637/java
tcp6 0 0 :::8066 :::* LISTEN 61637/java
yum install -y mariadb
systemctl stop firewalld
setenforce 0
[root@localhost ~]# mysql -u amoeba -p123456 -h 192.168.43.104 -P8066
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MySQL connection id is 730578010
Server version: 5.1.45-mysql-amoeba-proxy-2.2.0 Source distribution
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MySQL [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| class |
| mysql |
| performance_schema |
| school |
| test |
| you_db |
+--------------------+
7 rows in set (0.01 sec)
MySQL [(none)]>
注:在生产环境中,不能断开主从复制的服务。另外,使用MySQL版本的不同会导致,amoeba服务中的配置文件不同