首页 > 数据库 >MySQL主从搭建入门

MySQL主从搭建入门

时间:2023-12-18 21:02:14浏览次数:37  
标签:slave 入门 server cnf master MySQL 主从 log

MySQL主从搭建入门

原创 代码新手 代码新手 2023-10-28 17:32 发表于上海

MySQL之间数据复制的基础是二进制日志文件(binary log file)。一台MySQL数据库一旦启用二进制日志后,其作为master,它的数据库中所有操作都会以“事件”的方式记录在二进制日志中,其他数据库作为slave通过一个I/O线程与主服务器保持通信,并监控master的二进制日志文件的变化,如果发现master二进制日志文件发生变化,则会把变化复制到自己的中继日志中,然后slave的一个SQL线程会把相关的“事件”执行到自己的数据库中,以此实现从数据库和主数据库的一致性,也就实现了主从复制。

主节点配置

1. 修改配置文件/etc/my.cnf

server-id=135  # 唯一log-bin=mysql-binbinlog_format=MIXEDsync_binlog=1expire_logs_days=0binlog-do-db=test  # 表示需要同步的数据库

2. 重启MySQL服务

systemctl restart mysqld.service

3. 登录MySQL,创建从库账号,并赋权

create user 'slave'@'%' identified by 'mysqlslave';ALTER USER 'slave'@'%' IDENTIFIED WITH mysql_native_password BY 'mysqlslave';grant replication slave,replication client on *.* to 'slave'@'%';

第二行配置在MySQL8中是必须的,不然会无法连接主库。具体可以参考MySQL8的密码策略问题。

4. MySQL shell中执行,查看master的日志和状态

# 查看log_bin日志是否属于开启状态 show variables like 'log_bin'; # 查看当前操作的宿主机是否为master状态,需要记住这里的File和Position,后续要用show master status;

图片

从节点配置

  1. 修改配置文件/etc/my.cnf

server-id=136  # 唯一log-bin=mysql-bin

2. 重启MySQL,并登录。

systemctl restart mysqld.service

3. 登录MySQL,MySQL shell中执行,停止slave

stop slave

4. MySQL shell中执行,关联master

change master to master_host='10.211.55.26', master_port=3306, master_user='slave', master_password='mysqlslave', master_log_file='binlog.000002', master_log_pos=1228;
字段 含义
master_host master节点IP地址
master_port master节点MySQL服务监听的端口号
master_user 在master节点上创建的用户
master_password 在master节点上创建的用户
master_log_file show master status返回的File字段值
master_log_pos show master status返回的Position字段值

5. 更改slave server-id,这个值,master和slave不能一样,否则会报错,需要检查。

# 查看show variables like 'server_id';# 修改set global server_id=2; #此处的数值和my.cnf里设置的server-id一样就行

注意server_id和server-id的区别

6. MySQL shell中执行

start slave;

7. 查看同步状态

show slave status \G;# 若下面两个状态都是yes,则搭建成功,若是Slave_IO_Running为NO,则去查看master和slave的uuid是否一致 Slave_IO_Running: Yes Slave_SQL_Running: Yes

图片

如果在show slave status输出的Last_IO_Error:字段发现以下错误

Fatal error:The slave I/O thread stops because master and slave have equal MySQL server UUIDs

分别在master和slave节点查看uuid信息

Show variables like '%uuid%';

如果两边一致,则进行以下操作

首先在从节点上找到所有的mysql的auto.cnf文件

find / -name auto.cnf

备份后,删除

mv auto.cnf auto.cnf.bakrm -rf auto.cnf

重启slave的MySQL服务。

systemctl restart mysqld.service

 

阅读 704 代码新手   ​ 收藏此内容的人还喜欢   使用mysql搭建数仓?     木子不木 不看的原因   MySQL体系结构解密:深入探索数据库内部工作原理的奥秘     Lion 莱恩呀 不看的原因   Redis哨兵搭建     代码新手 不看的原因     关注后可发消息       复制搜一搜分享收藏划线    

人划线

 

标签:slave,入门,server,cnf,master,MySQL,主从,log
From: https://www.cnblogs.com/cherishthepresent/p/17912244.html

相关文章

  • ABP模块的测试项目从默认的Microsoft SQL Server替换成MySQL
    1、替换项目引用2、重新生成解决方案3、删除Migrations4、模块的引用替换成:AbpEntityFrameworkCoreMySQLModule5、命名空间替换成:Volo.Abp.EntityFrameworkCore.MySQL;6、ConfigureServices中的修改替换成:UseMySQL();7、DbContext中的修改替换成:UseMySql(configuration.GetConnect......
  • Oceanbase开源版 数据库恢复MySQL数据库的过程
    Oceanbase开源版数据库恢复MySQL数据库的过程背景想进行一下Oceanbase数据库的兼容性验证.想着用appcreate数据库的方式周期比较长.所以我想着换一套备份恢复的方式进行数据库的创建直接进行兼容性验证.这里面就需要进行一下数据库的备份恢复了.所以想总结一下.......
  • 云数据库MySQL多人协同开发实践
    本文分享自天翼云开发者社区《云数据库MySQL多人协同开发实践》,作者:不知不觉随着云计算技术的快速发展,云数据库作为云计算的重要组成部分,为企业提供了高效、灵活和可靠的数据存储和管理服务。其中,MySQL作为一款流行的开源关系型数据库,在云数据库领域具有广泛的应用。多人协同开发......
  • MySQL运维8-Mycat范围分表
    一、范围分片根据指定的字段及其配置的范围与数据节点的对应情况,来决定该数据属于哪一个分片。说明1:范围分片会提前提供一个分片的范围默认是0-500万是一个分片,500万-1000万是一个分片,1000万-1500万是一个分片,超过1500万要重新设置。说明2:这个范围我们可以根......
  • kettle组件控制操作MySQL
    使用kettle执行脚本:然后保存执行实现以下效果;转换参数:实现变量转换:deletefromtestwhereuserid='${userid}';实现效果:100被删除......
  • MySQL入门
    ps:(文中的中括号表示可以添加或者不添加)初始操作:  自己创建了数据库,展示时是这样的,但是在每一个数据库名字之下,可以想象又是一张这种表格,与一层层打开文件夹相似;如下:列类型:以上图中lesson数据库中红色表格为例:每个表格中的一列都可能对应不同类型;eg:姓名那一列放置的就是......
  • Istio从入门到精通—— 流量治理的原理 —— VirutalService —— HTTPRedirect
    流量治理的原理——VirutalService——HTTPRedirecthttps://istio.io/latest/docs/reference/config/networking/virtual-service/#HTTPRedirect HTTPRedirectcanbeusedtosenda301redirectresponsetothecaller,wheretheAuthority/HostandtheURIinthe......
  • Istio从入门到精通—— 流量治理的原理 —— VirutalService —— TLSMatchAttributes
    流量治理的原理——VirutalService—— TLSMatchAttributeshttps://istio.io/latest/docs/reference/config/networking/virtual-service/#TLSMatchAttributesTLSconnectionmatchattributes.FieldTypeDescriptionRequiredsniHostsstring[]SNI(s......
  • Istio从入门到精通—— 流量治理的原理 —— VirutalService —— L4MatchAttributes
    流量治理的原理——VirutalService—— L4MatchAttributeshttps://istio.io/latest/docs/reference/config/networking/virtual-service/#L4MatchAttributesL4connectionmatchattributes.NotethatL4connectionmatchingsupportisincomplete.......
  • Istio从入门到精通—— 流量治理的原理 —— VirutalService —— RouteDestination
     流量治理的原理——VirutalService——RouteDestinationhttps://istio.io/latest/docs/reference/config/networking/virtual-service/#RouteDestinationL4routingruleweighteddestination.L4路由规则的加权目的地。FieldType......