CentOS 7.4下MySQL+Amoeba做主从同步读写分离操作

栏目: 数据库 · 发布时间: 7年前

内容简介:三台mysql数据库:主数据库服务器:192.168.80.100从数据库服务器1:192.168.80.120从数据库服务器2:192.168.80.180

三台 mysql 数据库:主数据库服务器:192.168.80.100

从数据库服务器1:192.168.80.120

从数据库服务器2:192.168.80.180

一台amoeba调度器:192.168.80.190

一台mariadb客户端: 192.168.80.170

1、配置MySQL主从环境准备

配置NTP服务器-----时间同步

[root@NGINX ~]# yum install -y ntp //安装时间同步程序

[root@NGINX ~]# service ntpd start

[root@NGINX ~]# ntpdate -u cn.pool.ntp.org /.同步网络时间

CentOS 7.4下MySQL+Amoeba做主从同步读写分离操作

[root@NGINX ~]# vi /etc/ntp.conf //配置时间同步

在合适位置新增以下三行:

restrict 192.168.80.0 mask 255.255.255.0 nomodify

server 127.127.1.0

fudge 127.127.1.0 stratum 8

CentOS 7.4下MySQL+Amoeba做主从同步读写分离操作

在从服务器上:

[root@localhost ~]# yum install -y ntp

[root@localhost ~]# ntpdate 192.168.80.100

CentOS 7.4下MySQL+Amoeba做主从同步读写分离操作

[root@localhost ~]# echo ' /30 * /usr/sbin/ntpdate 192.168.80.100' >> /var/spool/cron/root //设置计划任务,每隔30分钟同步一次

[root@localhost ~]# crontab -l

CentOS 7.4下MySQL+Amoeba做主从同步读写分离操作

2、配置mysql服务器主从复制

在主mysql服务器上:192.168.80.100

[root@NGINX ~]# vi /etc/my.cnf

添加如下图内容:

CentOS 7.4下MySQL+Amoeba做主从同步读写分离操作

[root@NGINX ~]# service mysqld restart

[root@NGINX ~]# mysql -u root -p //进入数据库

CentOS 7.4下MySQL+Amoeba做主从同步读写分离操作

mysql> GRANT REPLICATION SLAVE ON . TO 'myslave'@'192.168.80.%' IDENTIFIED BY '123456';

//为所有从服务器授权所有数据库

CentOS 7.4下MySQL+Amoeba做主从同步读写分离操作

mysql> FLUSH PRIVILEGES; //刷新权限

CentOS 7.4下MySQL+Amoeba做主从同步读写分离操作

mysql> show master status \G

CentOS 7.4下MySQL+Amoeba做主从同步读写分离操作

注意position 的值和file

在从服务器1上设置:192.168.80.120

[root@localhost ~]# vi /etc/my.cnf

修改并新增以下内容:

server-id = 22

relay_log=relay-log-bin

relay_log_index=slave-relay-bin.index

CentOS 7.4下MySQL+Amoeba做主从同步读写分离操作

[root@localhost ~]# systemctl restart mysqld

[root@localhost ~]# mysql -u root -p

mysql> change master to master_host='192.168.80.100',master_user='myslave',master_password='123456',master_log_file='master_bin.000001',master_log_pos=802;

CentOS 7.4下MySQL+Amoeba做主从同步读写分离操作

mysql> start slave;

CentOS 7.4下MySQL+Amoeba做主从同步读写分离操作

mysql> show slave status \G

CentOS 7.4下MySQL+Amoeba做主从同步读写分离操作

在从服务器2上设置:

[root@test ~]# vi /etc/my.cnf

修改并新增以下内容:

server-id = 33

relay_log=relay-log-bin

relay_log_index=slave-relay-bin.index

CentOS 7.4下MySQL+Amoeba做主从同步读写分离操作

[root@test ~]# service mysqld restart

[root@test ~]# mysql -u root -p

mysql> change master to master_host='192.168.80.100',master_user='myslave',master_password='123456',master_log_file='master_bin.000001',master_log_pos=802;

CentOS 7.4下MySQL+Amoeba做主从同步读写分离操作

mysql> start slave;

CentOS 7.4下MySQL+Amoeba做主从同步读写分离操作

mysql> show slave status \G

CentOS 7.4下MySQL+Amoeba做主从同步读写分离操作

测试,在主服务器上创建一个空库,看一下从服务器上有木有

在主服务上

mysql> create database ab;

CentOS 7.4下MySQL+Amoeba做主从同步读写分离操作

在从服务器1上:

mysql> show databases;

CentOS 7.4下MySQL+Amoeba做主从同步读写分离操作

在服务器2上:

mysql> show databases;

CentOS 7.4下MySQL+Amoeba做主从同步读写分离操作

如上两幅图所示,表示主从同步成功了。

3、搭建amoeba前端服务器:192.168.80.190

[root@amoeba ~]# yum install -y ntpdate

[root@amoeba ~]# ntpdate 192.168.80.100

CentOS 7.4下MySQL+Amoeba做主从同步读写分离操作

[root@amoeba ~]# echo ' /30 * /usr/sbin/ntpdate 192.168.80.100' >> /var/spool/cron/root

[root@amoeba ~]# crontab -l

CentOS 7.4下MySQL+Amoeba做主从同步读写分离操作

[root@amoeba ~]# tar xf jdk-8u144-linux-x64.tar.gz -C /opt/

[root@amoeba ~]# cd /opt/

[root@amoeba opt]# cp -rv jdk1.8.0_144/ /usr/local/java

[root@amoeba opt]# vi /etc/profile //搭建 Java 环境

export JAVA_HOME=/usr/local/java

export JRE_HOME=/usr/local/java/jre

export PATH=$PATH:/usr/local/java/bin

export CLASSPATH=./:/usr/local/java/lib:/usr/local/java/jre/lib

CentOS 7.4下MySQL+Amoeba做主从同步读写分离操作

[root@amoeba opt]# source /etc/profile

[root@amoeba opt]# java -version

CentOS 7.4下MySQL+Amoeba做主从同步读写分离操作

如上图所示,搭建好了Java环境

[root@amoeba ~]# unzip amoeba-mysql-3.0.5-RC-distribution.zip -d /opt/

[root@amoeba ~]# cd /opt/

[root@amoeba opt]# mv amoeba-mysql-3.0.5-RC/ /usr/local/amoeba

[root@amoeba opt]# chmod -R 755 /usr/local/amoeba/

[root@amoeba opt]# vi /usr/local/amoeba/jvm.properties

新增:

JVM_OPTIONS="-server -Xms1024m -Xmx1024m -Xss256k"

CentOS 7.4下MySQL+Amoeba做主从同步读写分离操作

[root@amoeba opt]# vi /etc/init.d/amoeba //编辑系统服务脚本

#!/bin/bash

#chkconfig: 35 62 62

export JAVA_HOME=/usr/local/java

export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

NAME=Amoeba

AMOEBA_BIN=/usr/local/amoeba/bin/launcher&

SHUTDOWN_BIN=/usr/local/amoeba/bin/shutdown

PIDFILE=/usr/local/amoeba/Amoeba-MySQL.pid

SCRIPTNAME=/etc/init.d/amoeba

case "$1" in

start)

echo -n "Starting $NAME... "

$AMOEBA_BIN

echo " done"

;;

stop)

echo -n "Stoping $NAME... "

$SHUTDOWN_BIN

echo " done"

;;

restart)

$SHUTDOWN_BIN

sleep 1

$AMOEBA_BIN

;;

*)

echo "Usage: $SCRIPTNAME {start|stop|restart}"

exit 1

;;

Esac

CentOS 7.4下MySQL+Amoeba做主从同步读写分离操作 CentOS 7.4下MySQL+Amoeba做主从同步读写分离操作

[root@amoeba opt]# chmod +x /etc/init.d/amoeba //给予执行权限

[root@amoeba opt]# chkconfig --add amoeba //添加到系统管理中

[root@amoeba opt]# service amoeba start //开启amoeba服务

CentOS 7.4下MySQL+Amoeba做主从同步读写分离操作

4、配置读写分离

----在三台mysql数据库中为amoeba授权-------

mysql> GRANT ALL ON . TO test@'192.168.80.%' IDENTIFIED BY '123123';

CentOS 7.4下MySQL+Amoeba做主从同步读写分离操作

mysql> FLUSH PRIVILEGES;

CentOS 7.4下MySQL+Amoeba做主从同步读写分离操作

--------在amoeba前端服务器上----

[root@amoeba amoeba]# cd /usr/local/amoeba

[root@amoeba amoeba]# vi conf/amoeba.xml

-----设置客户端连接amoeba前端服务器时使用的用户名和密码----28行

<property name="user">amoeba</property>

<property name="password">123456</property>

CentOS 7.4下MySQL+Amoeba做主从同步读写分离操作

----同时把默认的server1改成master,把默认的servers改成 slaves-----83行

<property name="defaultPool">master</property>

<property name="writePool">master</property>

<property name="readPool">slaves</property>

CentOS 7.4下MySQL+Amoeba做主从同步读写分离操作

[root@amoeba conf]# vi dbServers.xml

<property name="user">test</property>

<property name="password">123123</property> //指定数据库的登录用户名和密码

CentOS 7.4下MySQL+Amoeba做主从同步读写分离操作

修改以下内容

<dbServer name="master" parent="abstractServer">

<property name="ipAddress">192.168.80.100</property>

<dbServer name="slave1" parent="abstractServer">

<property name="ipAddress">192.168.80.120</property>

<dbServer name="slave2" parent="abstractServer">

<property name="ipAddress">192.168.80.180/property>

CentOS 7.4下MySQL+Amoeba做主从同步读写分离操作

<dbServer name="slaves" virtual="true">

<poolConfig class="com.meidusa.amoeba.server.MultipleServerPool">

CentOS 7.4下MySQL+Amoeba做主从同步读写分离操作

<property name="poolNames">slave1,slave2</property>

</poolConfig>

CentOS 7.4下MySQL+Amoeba做主从同步读写分离操作

[root@amoeba amoeba]# service amoeba restart

CentOS 7.4下MySQL+Amoeba做主从同步读写分离操作

[root@amoeba amoeba]# netstat -anpt | grep java

CentOS 7.4下MySQL+Amoeba做主从同步读写分离操作

5、搭建mariadb客户端:192.168.80.170

[root@MYSQL ~]# yum install -y mysql

[root@MYSQL ~]# mysql -u amoeba -p123456 -h 192.168.80.190 -P8066

CentOS 7.4下MySQL+Amoeba做主从同步读写分离操作

如上图,已经成功连接到数据库了

在客户端上使用命令在test创建一个表:

MySQL [(none)]> use test;

MySQL [test]> create table zhang (id int(10),name varchar(10),address varchar(20));

MySQL [test]> show tables;

CentOS 7.4下MySQL+Amoeba做主从同步读写分离操作

在从服务器上

CentOS 7.4下MySQL+Amoeba做主从同步读写分离操作

在其中一台从服务器上创建一个空库

CentOS 7.4下MySQL+Amoeba做主从同步读写分离操作

在主服务器上查看所有库

CentOS 7.4下MySQL+Amoeba做主从同步读写分离操作

没有新建的那个库

在客户端上查看:

CentOS 7.4下MySQL+Amoeba做主从同步读写分离操作

由此所见,从服务器上建库,客户端可以读取,说明读写分离成功

Linux公社的RSS地址https://www.linuxidc.com/rssFeed.aspx

本文永久更新链接地址: https://www.linuxidc.com/Linux/2018-12/155648.htm


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Foundations of PEAR

Foundations of PEAR

Good, Nathan A./ Kent, Allan / Springer-Verlag New York Inc / 2006-11 / $ 50.84

PEAR, the PHP Extension and Application Repository, is a bountiful resource for any PHP developer. Within its confines lie the tools that you need to do your job more quickly and efficiently. You need......一起来看看 《Foundations of PEAR》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具