先点赞,后观看,伸手要有好习惯
- 基于Java环境开发
- 主要配置文件 schema.xml(逻辑数据库)、rule.xml(分片规则)、server.xml(一些系统和用户)
理解:Mycat作为一个逻辑数据库,是需要依赖下面的真实数据库
配置主从
坑点及建议:
1、因为关注点在主从,别花太多时间在一台单机安装mysql两个端口,可尝试虚拟机两台
2、mysql5.7跟之前的版本不一样,windows上面测试的朋友my.ini可以自己新建
3、对于my.ini的各个参数的解释请随机去百度,这里有我的转载实操
假设现在两台数据库的mysql均已正常安装,配置如下
服务器 | IP | 账号 | 密码 |
---|---|---|---|
主 | A | AUSER | APWD |
从 | B | BUSER | BPWD |
一般进my.ini只需要更新以下所给信息(有则改之无则加):
主库配置及步骤
[mysqld]
#binlog格式,分三种:statement level,rowlevel,mixed
#三种模式的差别介绍可以看:https://juejin.im/post/5df32b2a6fb9a01628012fb3
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架构图
![avatar][basemycat]
MyCat简介
简介个毛线,[MyCat官网](http://mycat.io/)那么详细的介绍不看,非要听我在这摘录?
环境安装
由于Mycat是基于Java开发的,所以JDK环境先安装好,再去安装Mycat,安装教程一大把,我就不赘述了
实现过程
1、为简单明了的看清配置信息,会删除不影响结果的注释,且本记录只针对一个主库和一个从库,分库分表只需要加对应的配置即可,配置文件中有相应的详细说明
2、可以进入mysql把从库的引擎改成MyISAM,如果不想从库有写的功能,也可以将mysql设置成只读数据库
schema.xml 配置信息(完整的配置信息及解释在文末):
主要是配置读写数据库信息和对应表信息
select user()
rule.xml 配置信息(完整的配置信息及解释在文末):
主要定义一些分片规则和生成规则之类的
这里尤其要注意一点,有个叫mod-long的function在schema.xml中引用到了,但是我只做了一分数据库,所以这里我把默认的3改成了1,如果你有对应的多个数据库分表,则改成相应的数量。
id
func1
user_id
func1
sharding_id
hash-int
id
rang-long
article_id
mod-long
id
murmur
id
crc32slot
create_time
partbymonth
calldate
latestMonth
id
rang-mod
id
jump-consistent-hash
0
1
160
2
partition-hash-int.txt
autopartition-long.txt
1
8
128
24
yyyy-MM-dd
2015-01-01
partition-range-mod.txt
3
server.xml 配置信息(完整的配置信息及解释在文末):
主要定义sql服务相关的参数,例如账号密码,sql事务及最大文本
0
0
2
0
65535
0
1
1
16
8066 9066
300000 0.0.0.0
4096 32
0
1
1m
1k
0
384m
true
mycatpwd
MycatDemo
true
user
MycatDemo
true
程序中连接数据库的时候就不再是单纯的mysql的连接和账号密码了,而是上面定义的:
数据库名:MycatDemo(schema.xml中)
账号:mycatuser(server.xml中)
密码:mycatpwd(server.xml中)
验证读写分离
进入mysql命令行,开启主从两个数据库的sql日志,通过sql日志执行的情况就能判断读写使用的哪个库
查看日期情况
mysql>show variables like '%general%';
开启日志
mysql>SET GLOBAL general_log = 'On';
指定日志文件
mysql>SET GLOBAL general_log_file = '/var/lib/mysql/mysql.log';
Mycat性能监控
mycat有性能监控的WEB管理端软件,有需要的自行下载安装
配置文件说明
server.xml文件说明
0
1
0
0
2
false
0
0
1
64k
1k
0
384m
false
false
true
123456
mycatdb
user
mycatdb
true
schema.xml文件说明
select user()
select user()
rule.xml文件说明
id
func1
user_id
func1
sharding_id
hash-int
id
rang-long
id
mod-long
id
murmur
id
crc32slot
create_time
partbymonth
calldate
latestMonth
id
rang-mod
id
jump-consistent-hash
0
2
160
partition-hash-int.txt
autopartition-long.txt
3
8
128
24
yyyy-MM-dd
2015-01-01
partition-range-mod.txt
3
[basemycat]:data:image/webp;base64,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