配置MySql主从数据库,MyCat分库分表,读写分离中间件(纯干货,无美图)

阅读: 评论:0

配置MySql主从数据库,MyCat分库分表,读写分离中间件(纯干货,无美图)

配置MySql主从数据库,MyCat分库分表,读写分离中间件(纯干货,无美图)

先点赞,后观看,伸手才有好习惯

  • 基于Java环境开发
  • 主要配置文件 (逻辑数据库)、(分片规则)、(一些系统和用户)

理解:Mycat作为一个逻辑数据库,是需要依赖下面的真实数据库

配置主从

  • 坑点及建议:
    1、因为关注点在主从,别花太多时间在一台单机安装mysql两个端口,可尝试虚拟机两台
    2、mysql5.7跟之前的版本不一样,windows上面测试的朋友my.ini可以自己新建
    3、对于my.ini的各个参数的解释请随机去百度,这里有我的转载

  • 实操
    假设现在两台数据库的mysql均已正常安装,配置如下

服务器IP账号密码
AAUSERAPWD
BBUSERBPWD

一般进my.ini只需要更新以下所给信息(有则改之无则加):

主库配置及步骤

[mysqld]
#binlog格式,分三种:statement level,rowlevel,mixed
#三种模式的差别介绍可以看:
binlog_format=mixed
#为服务器标识,主从一定不要一样  
server-id   = 1
#清理二进制日志的时间间隔
expire_logs_days = 10
#是需要同步的数据库  
binlog-do-db
#不需要同步的数据库
binlog-ignore-db = mysql                
binlog-ignore-db = test  #设置gtid同步方式
gtid_executed_compression_period = 1000 #1000默认
gtid_mode = on #默认off
enforce_gtid_consistency = on #默认off

1、连接主库,并进入mysql

>mysql -u数据库用户名 -p数据库密码

2、为从库创建授权用户slave,密码slave ,B为对应的IP

grant replication slave on *.* to 'slave'@'B' identified by 'slave' ;

3、刷新权限信息

flush privileges;

4、自行创建数据库和数据表并插入相应数据,mysql默认InnoDB,主库可以不用修改引擎

从库配置及步骤

my.ini文件

[mysqld]
#binlog格式,分三种:statement level,rowlevel,mixed
#三种模式的差别介绍可以看:
binlog_format=mixed
#为服务器标识,主从一定不要一样  
server-id   = 13
#清理二进制日志的时间间隔
expire_logs_days = 10
#是需要同步的数据库  
binlog-do-db
#设置gtid同步方式
gtid_executed_compression_period = 1000 #1000默认
gtid_mode = on #默认off
enforce_gtid_consistency = on #默认off

1、连接从库,并进入mysql

>mysql -u数据库用户名 -p数据库密码

2、复制一份主库的数据库到从库,并赋予slave权限

grant all privileges on *.* to 'slave'@'%' identified by 'slave' with grant option;

3、刷新权限或者退出mysql命令行重启mysql服务

4、master建立数据同步

change master to master_host='A',master_user='slave',master_password='slave',master_auto_position=1;

重要说明:部分教程用的master_log_file & master_log_pos 参数来指定,但是slave一旦出现问题,无法确认断节点,数据容易造成不一致,所以才引入gtid(即global transaction ID全局事务ID),想看相应介绍的可以去mysql官网里面搜寻相应的版本然后看看.

5、mysql命令查看从库数据库状态

mysql>show slave status G;

当显示的数据内有:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
就说明可以了

6、自行验证主库更新数据对从库的影响

Mycat

mycat架构图

MyCat简介

简介个毛线,[MyCat官网](/)那么详细的介绍不看,非要听我在这摘录?

环境安装

由于Mycat是基于Java开发的,所以JDK环境先安装好,再去安装Mycat,安装教程一大把,我就不赘述了

实现过程

1、为简单明了的看清配置信息,会删除不影响结果的注释,且本记录只针对一个主库和一个从库,分库分表只需要加对应的配置即可,配置文件中有相应的详细说明
2、可以进入mysql把从库的引擎改成MyISAM,如果不想从库有写的功能,也可以将mysql设置成只读数据库

(完整的配置信息及解释在文末):
主要是配置读写数据库信息和对应表信息

<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="/"><!-- 每一个schema代表一个逻辑数据库 这里的name是程序端使用的数据库名称,对应的数据库账号密码在l中--><schema name="MycatDemo" checkSQLschema="true" sqlMaxLimit="100"><!--  auto sharding by id (long)每个逻辑数据库下面对应的是所有的表,下方RDB代表真实数据库name:对应RDB中的表名primaryKey:RDB中该表的主键dataNode:这些表对应的数据库rule:对应的分片规则--><table name="article" primaryKey="article_id" autoIncrement="true" dataNode="dn1"rule="mod-long" /></schema><!-- 各个数据结点的信息,便于上方schema使用 如果是多个数据结点和多个host,那就同步复制一份dataNode和dataHost数据,然后写上对应的配置信息name:结点的名称dataHost:结点的主机地址database:RDB数据库名称--><dataNode name="dn1" dataHost="localhost1" database="demo" /><dataHost name="localhost1" maxCon="1000" minCon="10" balance="1"writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100"><!-- 心跳语句检测,检测对应的mysql是否正常运行 --><heartbeat>select user()</heartbeat><!-- can have multi write hosts --><writeHost host="hostM1" url="11.11.11.11:3306" user="root"password="root"><!-- can have multi read hosts --><readHost host="hostS2" url="22.22.22.22:3306" user="root" password="root" /></writeHost><!-- <writeHost host="hostM2" url="localhost:3316" user="root" password="123456"/> --></dataHost></mycat:schema>

(完整的配置信息及解释在文末):
主要定义一些分片规则和生成规则之类的

这里尤其要注意一点,有个叫mod-long的function在l中引用到了,但是我只做了一分数据库,所以这里我把默认的3改成了1,如果你有对应的多个数据库分表,则改成相应的数量。

<?xml version="1.0" encoding="UTF-8"?>
<!-- - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - .0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -->
<!DOCTYPE mycat:rule SYSTEM "rule.dtd">
&

本文发布于:2024-01-28 17:19:37,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/17064335839009.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:主从   干货   美图   中间件   数据库
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23