一、实验环境
- 实验环境:VMware Workstation 15.5、X Shell6、Centos7.6(4台,1台做主,2台做从,1台做amoeba监控服务器)
主服务器(master) | 192.168.50.133 |
---|---|
从服务器1(slave1) | 192.168.50.134 |
从服务器2(slave2) | 192.168.50.135 |
amoeba服务器(amoeba) | 192.168.50.136 |
-
软件版本:MySQL5.7、amoeba-mysql-binary-2.2.0.tar.gz、jdk-6u14-linux-x64.bin
-
本实验所需软件amoeba下载地址:https://wwa.lanzous.com/iPbAyg5vy0b
二、实验步骤
首先,在三台服务器上编译安装mysql服务,然后再进行如下步骤:
关闭系统防火墙及核心防护功能
systemctl stop firewalld
setenforce 0
1、配置主从复制,编辑并修改master上的配置文件:
vim /etc/my.cnf ## 编辑配置文件
在 [mysqld]下如下内容:
log-bin=master-bin
log-slave-updates=true
2、重启mysql服务
systemctl restart mysqld
3、授权从服务器进行同步
grant replication slave on *.* to 'myslave'@'192.168.50.%' identified by '123456';
flush privileges; ## 刷新权限立即生效
4、查看主服务器状态
show master status;
mysql> show master status;
+-------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+-------------------+----------+--------------+------------------+-------------------+
| master-bin.000001 | 603 | | | |
+-------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
5、现在开始分别在从服务器(slave1)与slave2进行如下配置
vim /etc/my.cnf ## 编辑配置文件
在 [mysqld]下如下内容:
server-id=2 ## 不能重复(可以将主设置为1,slave1设置为2,slave2设置为3)
relay-log=relay-log-bin
relay-log-index=slave-relay-bin.index
6、重启mysql服务
systemctl restart mysqld
7、找主服务器进行同步
change master to master_host='192.168.50.133', master_user='myslave', master_password='123456', master_log_file='master-bin.000001', master_log_pos=603;
8、开启从服务器
start slave;
9、查看两台从服务器状态
show slave status\G;
显示两个yes即可:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
10、下面进行amoeba服务器配置,将jdk库复制到/usr/local中并进行安装
cp jdk-6u14-linux-x64.bin /usr/local/ ## 将jdk库复制到/usr/local中
cd /usr/local/ ## 进入目录
chmod +x jdk-6u14-linux-x64.bin ## 将文件赋予执行权限
./jdk-6u14-linux-x64.bin ## 执行安装jdk库(一直按空格翻页,到最后会问你是否安装,输入yes回车即可
11、重命名jdk库目录名
mv jdk1.6.0_14/ jdk1.6
12、添加到系统环境变量
vi /etc/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 ## 重新加载配置文件
13、建立amoeba的家目录(工作目录)
mkdir /usr/local/amoeba
14、进入opt目录,解压缩amoeba主程序
cd /opt
tar zxvf amoeba-mysql-binary-2.2.0.tar.gz -C /usr/local/amoeba/
15、赋予目录权限
chmod -R 755 /usr/local/amoeba/
16、执行测试命令查看是否安装成功amoeba
/usr/local/amoeba/bin/amoeba
显示 amoeba start|stop 说明安装成功
17、分别在主服务器和两台从服务器上执行以下命令来授权amboba进行访问
grant all on *.* to test@'192.168.50.%' identified by '123.com';
flush privileges;
18、编辑amoeba配置文件(amoeba.xml)
vim /usr/local/amoeba/conf/amoeba.xml
修改第30、32行(客户端访问amoeba时的用户):
30 <property name="user">amoeba</property> ## 将root替换为amoeba
32 <property name="password">123456</property> ## 密码Wie123456
修改将117、120行,将注释符去掉,并修改115、118、119行:
19、编辑修改amoeba配置文件(dbServers.xml)
vim /usr/local/amoeba/conf/dbServers.xml
23 <property name="schema">mysql</property>
26 <property name="user">test</property> ## 设置用户名(mysql授权amoeba访问时的用户密码)
29 <property name="password">123.com</property> ## 设置密码
删去掉28、30行的注释符号
20、配置主、从服务器节点地址
修改以下行内容:
45 <dbServer name="master" parent="abstractServer">
48 <property name="ipAddress">192.168.50.133</property>
52 <dbServer name="slave1" parent="abstractServer">
55 <property name="ipAddress">192.168.50.134</property>
59 <dbServer name="slave2" parent="abstractServer">
62 <property name="ipAddress">192.168.50.135</property>
PS:59与62行本身不存在,需要复制前面的节点信息作为模板
只需要修改server name与IP即可
21、配置完节点详细信息,最后配置从服务器概要信息
66 <dbServer name="slaves" virtual="true"> ## 池子名为slaves
72 <property name="poolNames">slave1,slave2</property> ## slave1,slave2(根据实际需要可以继续添加节点)
21、重新开一台虚拟机模拟客户端访问amoeba,输入以下命令进行远程访问
mysql -uamoeba -p123456 -h 192.168.50.136 -P8066
使用命令查看数据库:show databases;
如果数据库能正常显示则说明搭建成功
22、搭建成功后可以进行一些相关测试工作
三、注意事项及故障处理
1、本实验是针对MySQL5.7版本,如果是5.5、5.6版本则需要注意以下内容:
在编辑配置文件dbServers.xml时,第23行
23 <property name="schema">mysql</property>
property name默认为test,不需要修改,因为数据库中本身就有test这个测试数据库存在,而在MySQL5.7中取消了测试数据库test,所以必须要修改这一项
2、实验开始前请务必关闭防火墙,否则会导致实验不成功