主从复制读写分离实验
mkdir /usr/local/amoeba//创建amoeba 文件夹。./jdk-6u14-linux-x64.bin//执行jdk 的 bin 文件。添加server 127.127.1.0//本地是时钟源//mv jdk1.6.0_14//usr/local/jdk1.6//移动文件并改名。//添加用户权限 用于slave 从服务器访问。
一,主从复制 读写分离
环境 三台linux 虚拟机 centos7
master 主服务器 主机名 mysql_m nat 网卡 地址 192.168.100.20
slave 从服务器 主机名 mysql_s1 nat 网卡 地址 192.168.100.10
slave 从服务器 主机名 mysql_s2 nat 网卡 地址 192.168.100.30
全部禁用selinux 永久关闭防火墙
配置 /etc/hosts 解析文件如下
192.168.100. 10 mysql_m
192.168.100.20 mysql_s1
192.168.10.100.30 mysql_s2
1, 安装NTP 建立主从间的时间同步
主从服务器上 安装 ntp
yum install -y ntp
主服务器上修改 配置文件 vi /etc/ntp.conf
添加 server 127.127.1.0 //本地是时钟源//
fudge 127.127.1.0 stratum 8 //设置时间层级为8(限制在15内)
启动时钟服务
systemctl start ntpd
从服务器上手动同步一次
ntpdate 192.168.100.20
2, yum 安装 mysql
主从服务器都安装 mariadb
yum -y install mariadb mariadb-server
mysql --version //查看版本
systemctl start mariadb //启动服务
mysql -uroot //空密码进入
用 数据库中修改密码的方法修改root 密码

3, 主从服务器修改配置文件重启服务
主服务器修改配置文件
vi /etc/my.cnf
添加内容如下
[mysqld]
server-id=1
log-bin=mysql-bin //主服务器日志文件名
log-slave-updates=true //从服务器更新日志
重启数据库服务
systemctl restart mariadb
从服务器修改配置文件
vi /etc/my.cnf
添加内容如下
[mysqld]
server-id=2
relay-log=mysql-relay
重启数据库服务
systemctl restart mariadb
主服务器mysql 添加用户权限 查看日志节点
进入mysql 中
show variables like 'server_id'; //查看数据库中server-id 显示
grant replication slave on *.* to 'myslave'@'192.168.10.%' identified by '123.com';
//添加用户权限 用于slave 从服务器访问
flush privileges; //刷新权限
show master status; //查看master 状态 注意日志名称和节点位置的数字

5, 从服务器mysql 配置 master 参数
进入从服务器mysql 中
change master to master_host='192.168.10.29', master_user='myslave', master_password='123.com',master_log_file='mysql-bin.000002', master_log_pos=477;
//在数据库中配置 master 主服务器参数 参照主服务器的日志名和节点位置
start slave; //启动slave 功能
show slave status\G; //查看状态

出现两个 yes 即为成功
做读写分离先上传所需资源

全部禁用selinux 永久关闭防火墙
amoeba 调度器配置
修改 /etc/hosts 文件添加如下解析记录
192.168.10.29 mysql_m
192.168.10.39 mysql_s1
192.168.10.49 mysql_s2
192.168.10.100 amoeba
1,安装jdk 配置环境 并验证
chmod +x jdk-6u14-linux-x64.bin //赋予文件权限
./jdk-6u14-linux-x64.bin //执行jdk 的 bin 文件
mv jdk1.6.0_14/ /usr/local/jdk1.6 //移动文件并改名
修改文件 /etc/profile 添加环境变量
vi /etc/profile
export JAVA_HOME=/usr/local/jdk1.6
export CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/lib:$JAVA_HOME/jre/bin:$JAVA_HOME/bin:$PATH
export AMOEBA_HOME=/usr/local/amoeba
export PATH=$PATH:$AMOEBA_HOME/bin
source /etc/profile //让文件修改立即生效
java -version //验证jdk 环境
2,安装 amoeba
mkdir /usr/local/amoeba //创建amoeba 文件夹
tar zxf amoeba-mysql-binary-2.2.0.tar.gz -C /usr/local/amoeba
chmod -R 755 /usr/local/amoeba
验证安装
/usr/local/amoeba/bin/amoeba

出现上面显示内容即为成功
3, 修改 amoeba 配置文件 amoeba.xml 和 dbServers.xml
cd /usr/local/amoeba/
vi conf/amoeba.xml


如上图部分修改划线地方即可 如果被注释掉 去掉注释



如上图修改划线部分即可 如有备注释的 去掉注释
4,启动服务
cd /usr/local/amoeba/bin
./amoeba start &
回车后 使用 netstat -anpt | grep java 查看
5,测试
首先需在三个mysql (一主两从) 上分别开放amoeba 访问权限(主从数据库都要执行)
grant all on *.* to 'test'@'192.168.10.%' identified by '123.com'
其次在测试机上 yum 安装 mysql 客户端命令
yum install -y mariadb
测试机上使用amoeba 用户 登录 密码是配置文件中修改的 123456 访问地址未 amoeba 服务器地址(可以现在amoeba上测试看可不可以登录)
mysql -u amoeba -p123456 -h 192.168.10.100 -P8066
测试 读数据 只能读到两台slave 服务器上的数据 并且两台做轮询(负载均衡)
在 masert 上创建数据库和表

创建完成后关闭三台数据库的同步
stop slave
在 master 上 创建的表中添加一条记录

如需想要显示中文需更改 my.cnf 配置文件添加如图三条 重启数据库

在 两台从服务器上分别添加第二条 和第三条记录
第一台从服务器

第二台从服务器

在客户端验证 多次查询 表记录 从服务器记录交替出现
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐
所有评论(0)