mysql扩展:主主复制

简介: mysql扩展:主主复制

扩展:主主复制

如果需要将一个slave1服务器作为另一台slave2的master,

1):在slave1上修改my.cnf,在[mysqld]模块添加

log-bin=master-bin

log-slave-updates=true

并重启mysql

2):在slave1上执行以下命令创建一个授权用户,用于在slave2上链接slave1

mysql> grant replication slave on *.* to 'myslave'@'192.168.10.%' identified by '123456' ;

mysql> flush privileges;

mysql> show master status;

 

3):show出来的信息做为slave2上连接slave1时的参数

重启Mysql服务不会影响主从关系

搭建Mysql读写分离

1:在主机amoeba上安装java环境

[root@localhost ~]# chmod +x  jdk-6u14-linux-x64.bin

[root@localhost ~]# ./jdk-6u14-linux-x64.bin

[root@localhost ~]# mv jdk1.6.0_14/ /usr/local/jdk1.6

[root@localhost ~]# 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

 

[root@localhost local]# source /etc/profile

[root@localhost local]# java -version            ##查询版本,确定java安装成功

 

 

2:安装并配置amoeba

[root@localhost local]# mkdir /usr/local/amoeba

[root@localhost ~]# tar zxf amoeba-mysql-binary-2.2.0.tar.gz -C /usr/local/amoeba/

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

[root@localhost ~]# /usr/local/amoeba/bin/amoeba

amoeba start|stop       ##有此提示表示成功

3:配置amoeba读写分离

(1)在三个mysql服务器中开放权限给amoeba访问(只在master中即可,会复制到slave中)

mysql> grant all on *.* to test@'192.168.10.%' identified by '123.com';

 

(2)在amoeba上配置amoeba.xml文件

[root@localhost amoeba]# systemctl stop firewalld

 

[root@localhost ~]# cd /usr/local/amoeba/conf

[root@localhost conf]# vi amoeba.xml

修改红色部分,此处设置的是mysql客户端连接amoeba时用的账号和密码

     

 

            amoeba                 ##30行

 

            123456               ##32行

 

           

                     

            ${amoeba.home}/conf/access_list.conf

                     

           

                     

       

 

                。。。。。。。。略。。。。。。。

 

     

           

                         ${amoeba.home}/conf/rule.xml

               ${amoeba.home}/conf/ruleFunctionMap.xml

           

             

               ${amoeba.home}/conf/functionMap.xml

               1500

               master             ##115行

 

             

               master             ##118行

               slaves    ##119行此处的注释去掉

             

               true

     

 

 

(3)编辑dbServer.xml文件

[root@localhost conf]# vi dbServers.xml

修改(注意去掉注释),slave2的复制一个slave1(如果只有一个从服务器,就不用复制)

   

                 test         ##26行

 

                     

                 123.com  ##29行,去掉注释符

                     

             

 

                      。。。。。。。。。略。。。。。。。。。。

 

 master"  parent="abstractServer">        ##45行

               

                       

                       192.168.1.102            ##48行

               

       

 

       slave1"  parent="abstractServer">              ##52行

               

                       

                       192.168.1.103               ##55行

               

       

 

 

       slaves" virtual="true">                   ##59行

               

                       

                       1

                       

                       slave1          ##65行(如果有多个从服务器,就再写上一个,逗号分隔)

               

       

 

(4)启动amoeba软件

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

[root@localhost amoeba]# bin/amoeba start  &

注:当在前台运行某个作业时,终端被该作业占据;而在后台运行作业时,它不会占据终端。可以使用&命令把作业放到后台执行

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

如果能看到8066和3306两个端口号,证明amoeba是正常开启的。

 

4:测试

(1):在client上

[root@localhost yum.repos.d]# yum -y install mariadb

[root@localhost yum.repos.d]# mysql -u amoeba -p 123456 -h 192.168.1.12 -P 8066

Enter password:            ##密码:123456

 

(2):在master服务器上创建表

mysql> use db_test;

mysql> create table zang (id int(10),name varchar(10),address varchar(20));

 

(3):在两个slave服务器上

mysql> stop slave;

 

(4):在master服务器上

mysql> insert into zang values ('1','zhang','this_is_master');

 

(5):在slave1上

mysql> use db_test;

mysql>insert into zang values ('2','zhang','this_is_slave1');

 

(6):在slave2上

mysql> use db_test;

mysql>insert into zang values ('3','zhang','this_is_slave2');

 

(7):在client上查询三次

mysql> use db_test;

mysql> select * from zang;

对比三次的输出,验证读操作,发现没有在master写入的数据,而slave上写的能查到

 

(8):在client上

mysql>insert into zang values ('4','zhang','this_is_client');

mysql> select * from zang;      ##发现在client上查询不到自己写的数据

 

(9):在master上

mysql> select * from zang;      ##能查到在client上写入的数据,说明写操作在master上

 

(10):在slave上

mysql> select * from zang;       ##发现没有数据,说明写入的操作是在master上

 

 

 

 

导出导入数据库:

[root@localhost ~]# mysqldump -u root -p --database auth > /opt/auth.sql      

[root@localhost data]# mysql -u root -p < /opt/ auth.sql

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
负载均衡 算法 关系型数据库
mysql的弹性扩展和负载均衡
mysql的弹性扩展和负载均衡
293 0
|
3月前
|
人工智能 关系型数据库 Java
当MySQL遇见AI:使用Vector扩展实现智能语义搜索
传统数据库的关键词搜索已无法满足现代应用对智能语义查询的需求。本文介绍如何通过MySQL的向量扩展(Vector Extension),将大模型产生的文本嵌入向量存储在MySQL中,并实现高效的语义相似度搜索。我们将完整演示从环境准备、数据库表设计、Java应用集成到性能优化的全流程,让您的传统关系型数据库瞬间具备AI智能检索能力,为构建下一代智能应用提供核心数据支撑。
424 3
|
存储 关系型数据库 MySQL
深入解析 MySQL 中的扩展
【8月更文挑战第31天】
312 0
|
负载均衡 关系型数据库 MySQL
MySQL 主主复制与主从复制对比
MySQL的主主复制和主从复制是两种常见的数据库复制配置方式,各有优缺点和适用场景。以下是对这两种复制方式的详细对比: ### 主从复制 (Master-Slave Replication) **特点:** 1. **单向复制**:数据从主服务器复制到一个或多个从服务器。从服务器只能从主服务器接收数据更新,不能向主服务器发送数据。 2. **读写分离**:主服务器处理写操作(INSERT、UPDATE、DELETE),从服务器处理读操作(SELECT),可以分担读负载,提高系统的整体性能。 3. **数据一致性**:数据在主服务器上是最新的,从服务器上可能会有一定的延迟。 **优点:**
981 1
|
Ubuntu 关系型数据库 MySQL
ubuntu apt 安装wordpress所需所有的 一键脚本 扩展您的PHP似乎没有安装运行WordPress所必需的MySQL扩展。
ubuntu apt 安装wordpress所需所有的 一键脚本 扩展您的PHP似乎没有安装运行WordPress所必需的MySQL扩展。
234 0
ubuntu apt 安装wordpress所需所有的 一键脚本 扩展您的PHP似乎没有安装运行WordPress所必需的MySQL扩展。
|
SQL 关系型数据库 分布式数据库
rds迁移与扩展
rds迁移与扩展
312 12
|
存储 固态存储 关系型数据库
rds垂直扩展
rds垂直扩展
211 2
|
存储 监控 关系型数据库
rds迁移与扩展
rds迁移与扩展
268 4
|
算法 关系型数据库 MySQL
三高Mysql - 搭建“三高”架构之扩展与切换
三高Mysql - 搭建“三高”架构之扩展与切换
235 0
|
存储 关系型数据库 MySQL
史上最全MySQL剖析:优化+存储+查询+索引+复制+可扩展+高可用
在互联网行业,MySQL数据库毫无疑问已经是最常用的数据库,LAMP (Linux +Apache + MySQL + PHP)甚至已经成为专有名词,也是很多中小网站建站的首选技术架构。

相关产品

  • 云数据库 RDS MySQL 版
  • 推荐镜像

    更多