mysql 优化 --- 如何搭建 mysql 的主从关系和 mycat 中间件
1. 如何搭建 mysql 的主从关系
解决 mysql 高并发的瓶颈。
1.1 复制概述
复制是指将主数据库的 DDL 和 DML 操作通过==二进制日志==传到从库服务器中,然后在从库上对这些==日志重新执行==(也叫重做),从而使得从库和主库的数据保持同步。
MySQL 支持一台主库同时向多台从库进行复制, 从库同时也可以作为其他从服务器的主库,实现链状复制。
1.2 复制原理
MySQL 的主从复制原理如下。
从上层来看,复制分成三步:
Master 主库在事务提交时,会把数据变更作为事件 Events 记录在二进制日志文件 Binlog 中。
主库推送二进制日志文件 Binlog 中的日志事件到从库的中继日志 Relay Log 。
slave 重做中继日志中的事件,将改变反映它自己的数据。
1.3 复制优势
MySQL 复制的优点主要包含以下三个方面:
主库出现问题,可以快速切换到从库提供服务。
可以在从库上执行查询操作,从主库中更新,实现读写分离,降低主库的访问压力。
可以在从库中执行备份,以避免备份期间影响主库的服务。
==mysql 需要允许远程连接==
1.4 搭建步骤
1.4.1 master
1) 在 master 的配置文件(/etc/my.cnf)中,配置如下内容:vi /etc/my.cnf ---打开文件
2) 执行完毕之后,需要重启 Mysql:
3) 创建同步数据的账户,并且进行授权操作:
设置远程访问。--- 若已经设置过则可忽略此步
4) 查看 master 状态:mysql -uroot -proot 进入 mysql
建议先截图留下,从节点的配置需要使用
字段含义:
File : 从哪个日志文件开始推送日志文件 给从节点
Position : 从哪个位置开始推送日志 从什么位置开始同步
Binlog_Ignore_DB : 指定不需要同步的数据库
1.4.2 slave---从节点搭建
1) 在 slave 端配置文件中,配置如下内容:
vi /etc/my.cnf ---开启文件
2) 执行完毕之后,需要重启 Mysql:
3) 执行如下指令 :
指定当前从库对应的主库的 IP 地址,用户名,密码,从哪个日志文件开始的那个位置开始同步推送日志。
4) 开启同步操作
如果你的从节点虚拟机是克隆的主节点的,那么你需要修改一些配置
配置完停止同步(stop slave)操作并从第三步重新配置
配置成功后可以去主节点创建数据库并添加一些数据,查看从节点是否也自动创建并添加了相同的数据库和数据
5) 停止同步操作
2.MyCat 的安装
1、 将压缩包上传到 Linux 指定的目录下并且解压
我们这里放在/usr/local 路径下
版本使用的是 1.6.7.4 稳定版
解压命令:
tar -zxvf Mycat-server-1.6.7.4-release-20200105164103-linux.tar.gz
2、修改配置文件
2.1 主要是修改如下 3 个配置文件
①schema.xml:定义逻辑库,表、分片节点等内容
②rule.xml:定义分片规则
③server.xml:定义用户以及系统相关变量,如端口等
2.2 修改 schema.xml
修改用户信息,与 MySQL 区分,如下:
配置好的信息,按自己的需要修改相关信息
这里我配置了一个写主机 (192.168.135.156) 和一个读主机 (192.168.135.160),实现读写分离
这里的 testdb 是我们 mysql 中的数据库名称
主要分 schema、dataNode、dataHost 三个主要配置.
2.3 修改配置文件 server.xml
其中 mycat、user 为访问 mycat 的用户,testdb 为 mycat 虚拟的数据库,供上层应用访问。
3、 验证数据库访问情况
Mycat 作为数据库中间件要和数据库部署在不同机器上,所以要验证远程访问情况。mysql -udhapp -pxxxxxx -h 192.168.56.20 -P 3306mysql -udhapp -pxxxxxx -h 192.168.56.21 -P 3306
#如远程访问报错,请建对应用户
grant all privileges on . to root@'%' identified by '123123'
4、 启动程序
1、 控制台启动:去 mycat/bin 目录下执行 ./mycat console
2 、后台启动:去 mycat/bin 目录下 ./mycat start
为了能第一时间看到启动日志,方便定位问题,我们选择 1 控制台启动。
出现 successfully 表示启动成功
5、登录
1、登录后台管理窗口
此登录方式用于管理维护 Mycat mysql -umycat -pxxxxxx -P 8066 -h 192.168.56.20
--- Mycat mysql -umycat -p 密码 -P 8066 -h ip --------(默认 mycat 端口号为 8066)
接下来就可以通过 springboot 项目来通过 mycat 访问相关数据库了,在使用 idea 测试前记得放行 8066 端口号或关闭防火墙
评论