【linux环境】MySQL主从复制配置原理与详解,java开发中常见中间件面试

输入命令如下

CHANGE MASTER TO

MASTER_HOST=‘192.168.245.131’,//MASTER主节点IP

MASTER_USER=‘root’,//创建的用户

MASTER_PASSWORD=‘123456’,//用户密码

MASTER_LOG_FILE=‘mysql-bin.000001’,//MASTER主机binlog日志名称,必须是最新的一个

MASTER_LOG_POS=120,//binlog日志偏移量,对应master节点的

master_port=3306;/端口号

3.3 开启中继日志

[mysqld]

server-id=102 #必须

relay-log=relay-log #必须

relay-log-index=relay-log.index #必须

innodb_file_per_table=ON #非必须

skip_name_resolve=ON #非必须

3.4 辅助操作

查看slave子节点状态

#查看slave子节点状态

show slave status\G;

启动slave节点

#启动slave节点

start slave;

关闭slave节点

#关闭slave节点

stop slave;

3.5 slave02(从节点配置)

修改MySQL从节点配置文件

vim /etc/my.cnf

[mysqld]

#不与主节点以及其它从节点重复即可

server-id=103

查看slave子节点状态

#查看slave子节点状态

show slave status\G;

启动slave节点

#启动slave节点

start slave;

四、创建表以及新增数据进行验证


4.1 创建数据库用户

建议使用SQLyog工具创建用户,比较方便。

链接: https://pan.baidu.com/s/11gIlZKxoTG5BCCcoXdVJRg 提取码: ntu7

4.2 创建表

/** 创建测试表GIRL **/

CREATE TABLE GIRL (

ID varchar(64) CHARACTER SET utf8 NOT NULL,

GIRE_NAME varchar(64) COLLATE utf8_bin DEFAULT NULL,

GIRL_AGE varchar(10) COLLATE utf8_bin DEFAULT NULL,

CUP_SIZE varchar(2) COLLATE utf8_bin DEFAULT NULL,

PRIMARY KEY (ID)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin

4.3 生成测试数据

/** 插入测试数据 **/

insert into GIRL values(‘tolove16B’,‘梦梦’,‘16’,‘B’);

4.4 采用SQLylog工具验证

master节点插入测试数据

在这里插入图片描述

master节点binlog日志验证

在这里插入图片描述

slave_check_RELAYLOG(133服务器)

在这里插入图片描述

132_slave_insert_data_girl同步数据

在这里插入图片描述

133_slave_check_RELAYLOG日志

在这里插入图片描述

133_slave_同步数据

在这里插入图片描述

五、排查问题


5.1 error 1236

master_log_pos与从节点不一致导致error 1236

在这里插入图片描述

分析日志:position日志偏移量与master节点不一致

设置的master_log_pos发生改变,导致position不一致,出现无法同步(报:error 1236)

在这里插入图片描述

slave节点正常状态参考

注意:我截图上的是后期优化处理过的,所以看到的pos和上面的不一致

在这里插入图片描述

5.2 解决问题

通过如下设置保持与master节点一致

首先关闭slave节点

stop slave

查看master节点日志偏移量

show master status\G;

在slave节点修改日志偏移量与master一致

change master to master_log_file =‘mysql-bin.000005’,master_log_pos=950;

最后启动slave节点

start slave

5.3 数据库授权远程登录

5.3.1 授权命令

GRANT ALL PRIVILEGES ON . TO ‘你的数据库用户名’@‘单个ip或者%表示所有’ IDENTIFIED BY ‘你的数据库连接密码’ WITH GRANT OPTION;

GRANT ALL PRIVILEGES ON . TO ‘root’@‘%’ IDENTIFIED BY ‘123456’ WITH GRANT OPTION;

5.3.2 修改用户密码

set password for root@localhost=password(‘123456’);

5.4 防火墙问题

5.4.1 默认安装为firewalld

本次实战中使用到的是centos7,默认安装的是firewalld

5.4.2 临时关闭防火墙

systemctl stop firewalld.service

5.4.3 开放指定端口

实际工作中推荐需要使用哪些端口采取开放,比如开放MySQL默认的3306:

公共区域设置开放3306端口永久生效(–permanent):

firewall-cmd --zone=public --add-port=3306/tcp --permanent

操作完记住重启或重载:

firewalld-cmd --reload

移除:

firewall-cmd --zone=public --remove-port=3306/tcp --permanent

查看是否开放:

firewall-cmd --zone=public --query-port=3306/tcp

5.5 连接工具

推荐使用NavicatSQLyog可视化工具

链接: https://pan.baidu.com/s/11gIlZKxoTG5BCCcoXdVJRg 提取码: ntu7

SQLyog官网下载

https://sqlyog.en.softonic.com/

六、实现MySQL主从复制


6.1 分析模型

分析模型:一主一从,一主多从,多主一从

6.1.1 一主一从模型:master->slave

在这里插入图片描述

6.1.2 一主多从

在slave节点再配置slave缓解master服务器压力

在这里插入图片描述

6.1.3 多主一从

在这里插入图片描述

6.1.4 特例:主-主复制

(每一个主既是从又是主)

在这里插入图片描述

6.1.5 使用SQLylog操作验证

分别登陆三台数据库服务器(推荐SQLylog工具)

同时登陆xshell工具连接查看三台服务器状态(推荐使用xshell或者SecureCRT)

ip:192.168.245.131 //master

数据库:test_db //与master节点配置单一用户对应

数据库表:GIRL

ip:192.168.245.132 //slave

master节点创建GIRL表,slave同步创建

ip:192.168.245.133 //slave

master节点创建GIRL表,slave同步创建

tips:如果想实现主-主同步,则需要在其它两台配置数据库用户关联授权,参考第二步。

我并没有验证主-主同步,嘿嘿,当然你可以私下验证哟!

七、附件(搭建环境)


7.1 虚拟机搭建环境

小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Java)
img

写在最后

还有一份JAVA核心知识点整理(PDF):JVM,JAVA集合,JAVA多线程并发,JAVA基础,Spring原理,微服务,Netty与RPC,网络,日志,Zookeeper,Kafka,RabbitMQ,Hbase,MongoDB,Cassandra,设计模式,负载均衡,数据库,一致性哈希,JAVA算法,数据结构,加密算法,分布式缓存,Hadoop,Spark,Storm,YARN,机器学习,云计算…

image

滞不前!**

因此收集整理了一份《2024年最新Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
[外链图片转存中…(img-qrftud9V-1711162466041)]
[外链图片转存中…(img-L1Vy1Sq9-1711162466042)]
[外链图片转存中…(img-MWdhlU9S-1711162466042)]

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Java)
[外链图片转存中…(img-JyxXR5QL-1711162466043)]

写在最后

还有一份JAVA核心知识点整理(PDF):JVM,JAVA集合,JAVA多线程并发,JAVA基础,Spring原理,微服务,Netty与RPC,网络,日志,Zookeeper,Kafka,RabbitMQ,Hbase,MongoDB,Cassandra,设计模式,负载均衡,数据库,一致性哈希,JAVA算法,数据结构,加密算法,分布式缓存,Hadoop,Spark,Storm,YARN,机器学习,云计算…

[外链图片转存中…(img-U97f4QlZ-1711162466044)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

  • 13
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值