实验目标:

1、搭建主从半同步+GTID复制
2、搭建MHA主服务器高可用
3、Mycat实现分库:wordpress库和shopxo库
4、客户通过域名可以访问到wordpress和shopxo

实验环境准备工作:
Mysql master: NAT eth0: 10.0.0.8 Rocky8.6
Mysql slave: NAT eth0: 10.0.0.18 Rocky8.6
Mysql slave1: NAT eth0: 10.0.0.28 Rocky8.6
Mycat: NAT eth0: 10.0.0.38 Rocky8.6
MHA manager: NAT eth0: 10.0.0.7 Centos7
wordpress: NAT eth0: 10.0.0.48 Rocky8.6
shopxo: NAT eth0: 10.0.0.58 Rocky8.6
firewalld: NAT eth0: 10.0.0.68 仅主机VMnet2: eth1: 192.168.0.100/24 仅主机VMnet2: eth1:0: 192.168.0.101/24
UserRoute: 仅主机VMnet2: eth1: 192.168.0.88/24 仅主机VMnet3: eth0 192.168.10.88/24
DNS master: 仅主机VMnet3: eth0 192.168.10.100/24
DNS slave: 仅主机VMnet3: eth0 192.168.10.200/24
client: 仅主机VMnet3: eth0 192.168.10.8/24
# Mysql master、mysql slave、mysql slave1、MHA配置和上边实验配置一样
# Mycat配置:
Mycat:
[root@mycat ~]# yum install -y java
[root@mycat ~]#mkdir /apps
[root@mycat ~]#tar xf Mycat-server-1.6.7.6-release-20220524173810-linux.tar.gz -C /apps/
[root@mycat ~]#cd /apps/
[root@mycat apps]#echo 'PATH=/apps/mycat/bin:$PATH' > /etc/profile.d/mycat.sh
[root@mycat apps]#. /etc/profile.d/mycat.sh
[root@mycat apps]#mycat start
Starting Mycat-server...
[root@mycat apps]#ss -ntl
[root@mycat mycat]#/apps/mycat/
[root@mycat mycat]#vim conf/server.xml
<property name="serverPort">3306</property> #修改8066端口为3066,此行(45行)默认是注释的,可以复制到53行左右为注释的地方 # server.xml最后几行user修改如下:
<user name="root" defaultAccount="true">
<property name="password">123456</property>
<property name="schemas">wordpress,shopxo</property>
<!-- <property name="defaultSchema">wordpress</property> -->
<!--No MyCAT Database selected 错误前会尝试使用该schema作为schema,不设置则为null,报错 --> <!-- 表级 DML 权限设置 -->
<!--
<privileges check="false">
<schema name="TESTDB" dml="0110" >
<table name="tb01" dml="0000"></table>
<table name="tb02" dml="1111"></table>
</schema>
</privileges>
-->
</user> <user name="wordpress">
<property name="password">123456</property>
<property name="schemas">wordpress</property>
<!-- <property name="readOnly">true</property> -->
<property name="defaultSchema">wordpress</property>
</user>
<user name="shopxo">
<property name="password">123456</property>
<property name="schemas">shopxo</property>
<!-- <property name="readOnly">true</property> -->
<property name="defaultSchema">shopxo</property>
</user> [root@mycat ~]#cd /apps/mycat/conf/
[root@mycat conf]#vim schema.xml
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
<schema name="wordpress" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1">
</schema>
<schema name="shopxo" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn2">
</schema>
<dataNode name="dn1" dataHost="localhost1" database="wordpress" />
<dataNode name="dn2" dataHost="localhost1" database="shopxo" />
<dataHost name="localhost1" maxCon="1000" minCon="10" balance="1"
writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<writeHost host="host1" url="10.0.0.8:3306" user="li" password="123456">
<readHost host="host2" url="10.0.0.18:3306" user="li" password="123456" />
<readHost host="host3" url="10.0.0.28:3306" user="li" password="123456" />
</writeHost>
</dataHost>
</mycat:schema>
[root@mycat conf]#mycat restart
# wordpress配置:
提前在数据库建立数据库wordpress,用户wordpress@'10.0.0.%',并授权wordpress库的所有操作
yum install httpd php php-json php-mysqlnd
tar xf wordpress-5.8.4-zh_CN.tar.gz
mv wordpress/* /var/www/html/
chown -R apache. /var/www/html/
systemctl start httpd
浏览器登陆10.0.0.48 连接数据库 数据库主机填写mycat的地址10.0.0.38,用户名填写mycat server.xml里对应的用户信息
# shopxo配置:
提前在数据库建立数据库shonpx,用户shonpx@'10.0.0.%',并授权shonpx库的所有操作
yum -y install httpd php php-mysqlnd php-json php-gd php-xml php-pecl-zip
tar xf shopxo-v2.2.3.tar.gz
mv shopxo/* /var/www/html/
chown -R apache. /var/www/html/
systemctl start httpd
浏览器登陆10.0.0.58 连接数据库 数据库主机填写mycat的地址10.0.0.38,用户名填写mycat server.xml里对应的用户信息
# 防火墙:
[root@rocky8 ~]# sysctl -p
net.ipv4.ip_forward = 1
[root@rocky8 ~]# iptables -t nat -A PREROUTING -d 192.168.0.100 -p tcp --dport 80 -j DNAT --to-destination 10.0.0.48:80
[root@rocky8 ~]# iptables -t nat -A PREROUTING -d 192.168.0.101 -p tcp --dport 80 -j DNAT --to-destination 10.0.0.58:80
# UserRoute:
[root@rocky8 ~]# iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j MASQUERADE
[root@rocky8 ~]# sysctl -p
net.ipv4.ip_forward = 1
# DNS master:提前安装好dns软件(bind和bind-utils)
[root@DNS ~]# vim /etc/named.conf
注释掉三行:
//  listen-on port 53 { 127.0.0.1; };
//  listen-on-v6 port 53 { ::1; };
// allow-query { localhost; };
增加一行:
allow-transfer { 192.168.10.200; }; #只允许从服务器ip的请求 [root@DNS ~]# vim /etc/named.rfc1912.zones  #配置域名
zone "dayu.org" IN {
type master;
file "dayu.org.zone";
};
             
[root@DNS ~]# cp -p /var/named/named.localhost /var/named/dayu.org.zone
[root@DNS ~]# vim /var/named/dayu.org.zone
$TTL 1D
@ IN SOA wang rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS wang
NS slave
slave A 192.168.10.200
wang A 192.168.10.100
wordpress A 192.168.0.101
shopxo A 192.168.0.100 最后重启下DNS 的named服务
#192.168.10.200(从DNS)注释掉三行:
[root@DNS1 ~]# vim /etc/named.conf
//  listen-on port 53 { 127.0.0.1; };
//  listen-on-v6 port 53 { ::1; };
// allow-query { localhost; }; [root@DNS1 ~]# vim /etc/named.rfc1912.zones
zone "dayu.org" IN {
type slave;
masters { 192.168.10.100; };
file "slaves/dayu.org.zone";
};
最后重启下DNS 的named服务
用户测试:
[root@client ~]# curl wordpress.dayu.org
[root@client ~]# curl shopxo.dayu.org

Mysql综合实验2-LAMP+MHA+MYcat分库的更多相关文章

  1. Redis整合MySQL和MyCAT分库组件(来源是我的新书)

    MyCAT是一个开源的分布式数据库组件,在项目里,一般用这个组件实现针对数据库的分库分表功能,从而提升对数据表,尤其是大数据库表的访问性能.而且在实际项目里,MyCAT分库分表组件一般会和MySQL以 ...

  2. mycat+mysql集群:实现读写分离,分库分表

    1.mycat文档:https://github.com/MyCATApache/Mycat-doc       官方网站:http://www.mycat.org.cn/ 2.mycat的优点: 配 ...

  3. MySQL+MyCat分库分表 读写分离配置

    一. MySQL+MyCat分库分表 1 MyCat简介 java编写的数据库中间件 Mycat运行环境需要JDK. Mycat是中间件.运行在代码应用和MySQL数据库之间的应用. 前身 : cor ...

  4. mysql高可用架构之MHA,haproxy实现读写分离详解

    MySQL高可用架构之MHA 一.运维人员需要掌握的MySQL技术: 1.基本SQL语句 2.基本的管理[库表数据的管理    权限的管理] 3.容灾       保证数据不丢失. 二.工作中MySQ ...

  5. 基于Mysql数据库亿级数据下的分库分表方案

    移动互联网时代,海量的用户数据每天都在产生,基于用户使用数据的用户行为分析等这样的分析,都需要依靠数据都统计和分析,当数据量小时,问题没有暴露出来,数据库方面的优化显得不太重要,一旦数据量越来越大时, ...

  6. MyCat分库分表入门

    1.分区 对业务透明,分区只不过把存放数据的文件分成了许多小块,例如mysql中的一张表对应三个文件.MYD,MYI,frm. 根据一定的规则把数据文件(MYD)和索引文件(MYI)进行了分割,分区后 ...

  7. 转:三思!大规模MySQL运维陷阱之基于MyCat的伪分布式架构

    在微信公众号看到一篇关于mycat的文章,觉得分析的很不错,给大家分享一下 三思!大规模MySQL运维陷阱之基于MyCat的伪分布式架构 原文链接:https://mp.weixin.qq.com/s ...

  8. mysql高可用架构之-MHA学习

    此博文参考  博主:mysql高级DBA yayun  完成 简介: MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司 ...

  9. MySQL高可用系列之MHA(二)

    一.參数说明 MHA提供了一系列配置參数.深入理解每一个參数的详细含义,对优化配置.合理使用MHA非常重要.非常多高可用性也都是通过合理配置一些參数而实现的. MHA包含例如以下配置參数,分别说明例如 ...

随机推荐

  1. ARC120D Bracket Score 2 (模拟)

    题面 给一个长度为 2 N 2N 2N 的序列 A A A,定义一个长度为 2 N 2N 2N 的合法括号序列的 得分(score) 为: 对于每对配对的括号 i , j i,j i,j, ∣ A i ...

  2. CF1019B The hat (二分)

    题面 题解 如果位置为i的人与对面的差是x,i+1位置由于只能+1或-1,所以i+1位置与对面的差就是x.x+2或x-2,可以发现,奇偶性不变. 所以只要判断出是奇差,就可以直接输出"! - ...

  3. Filter(过滤器)、ThreadLocal(本地线程)、Listener(监听器)

    Filter(过滤器) Filter过滤器它的作用是:拦截请求,过滤响应. 过滤器链 1)执行的顺序依次是: A B C Demo03 C2 B2 A2 2)如果采取的是注解的方式进行配置,那么过滤器 ...

  4. 究竟什么是Shadow DOM?

    shadow dom 是什么? 顾名思义,shadow dom直译的话就是影子dom,但我更愿把它理解为DOM中的DOM.因为他能够为Web组件中的 DOM和 CSS提供了封装,实际上是在浏览器渲染文 ...

  5. ABAQUS和UG许可证冲突问题的解决方案

    前段时间重新安装了ABAQUS,更新到了2020版本后,发现NX UG怎么突然打不开了,搜索一下,发现是两个许可证有冲突.找了很多解决方案,主要归纳为以下两种: 方法一:Lmtools修改法 先说结论 ...

  6. HPC+时代,携手亚马逊云科技,共赴数字化升级的星辰大海!

    高性能计算(HPC)和云计算曾是两个"平行世界",各自演绎着精彩,却鲜有交集. 传统上,HPC主要应用于大规模计算,如天气预报.石油勘探.药物研发等.这些任务通常借助超级计算机或计 ...

  7. 高清地图转换(xord转apollo的bin文件)

    目标 将carla中的OpenDrive地图(carla\Unreal\CarlaUE4\Content\Carla\Maps\OpenDrive)转换为Apollo中可识别的地图格式(bin与txt ...

  8. winform, 实现窗口程序像QQ一样靠近桌面边缘自动隐藏窗口

    实现原理: 步骤如下: 1.判断窗体程序是否靠近桌面边缘: 2.获取桌面屏幕大小与窗体程序大小: 3.把窗体程序显示在桌面以外隐藏起来,预留部分窗体方便用户拉出程序: 4.判断鼠标是否在窗体程序上,在 ...

  9. [Python]-pandas模块-机器学习Python入门《Python机器学习手册》-02-加载数据:加载文件

    <Python机器学习手册--从数据预处理到深度学习> 这本书类似于工具书或者字典,对于python具体代码的调用和使用场景写的很清楚,感觉虽然是工具书,但是对照着做一遍应该可以对机器学习 ...

  10. java script 日常学习 正则表达式

    <!DOCTYPE html><html><head> <title>函数的运用</title> <meta charset=&quo ...