首页 > 数据库 >MySQL主从复制

MySQL主从复制

时间:2024-08-06 13:57:02浏览次数:17  
标签:主库 主从复制 slave 数据库 master MySQL 日志

介绍


MySOL主从复制是一个异步的复制过程,底层是基于Mysq1数据库自带的二进制日志功能。就是一台或多台MySOL数据库(slave,即从库)从另一台MvSOL数据库(master,即主库)进行日志的复制然后再解析日志并应用到自身,最终实现从库的数据和主库的数据保持一致。MySOL主从复制是MySOL数据库自带功能,无需借助第三方工具。
MySQL复制过程分成三步:
master将改变记录到二进制日志(binary log)
slave将master的binary log拷贝到它的中继日志(relay log)

slave重做中继日志中的事件,将改变应用到自己的数据店中。

配置-前置条件

准备两台服务器,安装mysql并启动,这里可以可以用服务器也可以用虚拟机准备两个Linux系统

也可以一个虚拟机一个Windows本地MySQL。

配置-主库master

使用命令:vim /etc/my.cnf打开文件后输入i进入插入模式,添加两行内容:log-bin=mysql-bin

server-id=100,这里的100可以改成任意数字只要不重复就行。接着按esc健 输入 :wq回车保存退出。接着重启服务:systemctl restart mysqld

登录Mysql数据库,执行下面SQL

GRANT REPLICATION SLAVE ON ** to 'xiaoming'@'%' identified by 'Root@123456'
上面S0L的作用是创建一个用户xiaoming,密码为Root@123456,并且给xiaoming用户授予REPLICATION SLAVE汉限。常用于建立复制时所需要用到的用户权限,也就是slave必须被master授权具有该权限的用户,才能通过该用户复制。

登录MySQL数据库,执行下面SQL,记录以下file和position的值

show master status;

执行完这句SQL后不要在主库进行任何操作因为position的值会改变。

配置-从库slave

修改MySQL数据库配置文件 vim /etc/my.cnf。添加一行:server-id=101

修改完配置后需要重启服务输入命令:systemctl  restart mysqld

登录Mysql数据库,执行下面SQL
change master to
iaster host='192.168.138.100',master user='xiaoming',master password='Root@123456',master logfile='mysql-bin.000001',master log pos=439;

解释一下sql:这里的192.168.138.100是自己主库master数据库的IP,xiaoming是自己设置的用户,Root@123456是自己设置的密码,"mysql-bin.000001"是主库执行完show master status;里的file名,439是position。

执行完输入start slave;

继续输入:show slave status\G;查看状态

其中Slave_IO_Running: Yes Slave_SQL_Running: Yes状态需要是Yes表示成功,接下来就可以进行验证操作,比如在主master数据库的test数据库的一张表中插入一条数据,在slave的test库的相同数据表中查看是否有新增的数据即可验证主从复制功能是否有效,还可以关闭slave(stop slave;),然后再修改master,看slave是否也相应修改(停止slave后,master的修改不会同步到slave),就可以完成主从复制功能的验证了;

之后可以在navicat中测试一下在主库中创建一个数据库看从库能不能刷新出来一个和主库相同的数据库。如果可以则说明主从复制成功。反之检查主库授权的密码,和从库中的IP输入的是否正确。

标签:主库,主从复制,slave,数据库,master,MySQL,日志
From: https://blog.csdn.net/m0_69501959/article/details/140892031

相关文章

  • 【MySQL的索引优化】
    一、索引的使用场景1、全值匹配通过主键索引查询代码解读mysql>explainselect*fromt_goodswhereid=1\G;***************************1.row***************************id:1select_type:SIMPLEtable:t_goodspartitions:N......
  • 基于Java+SpringBoot+Mysql实现的在线电影订票系统部分功能设计与实现五
    一、前言介绍:1.1项目摘要随着互联网技术的飞速发展和普及,人们的娱乐消费方式发生了巨大变化。在线娱乐平台,特别是电影订票系统,成为了现代人观影的主要选择之一。这一变化主要得益于以下几个方面的因素:生活节奏的加快:现代人的生活节奏越来越快,时间变得尤为宝贵。在线电影......
  • 基于Java+SpringBoot+Mysql实现的在线电影订票系统部分功能设计与实现六
    一、前言介绍:1.1项目摘要随着互联网技术的飞速发展和普及,人们的娱乐消费方式发生了巨大变化。在线娱乐平台,特别是电影订票系统,成为了现代人观影的主要选择之一。这一变化主要得益于以下几个方面的因素:生活节奏的加快:现代人的生活节奏越来越快,时间变得尤为宝贵。在线电影......
  • 简单的mysqldump备份(windows)
    备份小数据库用mysql自带的mysqldump就可以完成备份,写一个简单的适用于windows下跑的脚本。策略每天凌晨1点全备,保留7天备份脚本dbbak.batsetday=%date:~0,4%%date:~5,2%%date:~8,2%setlocalip=xxx.xxx.xxx.xxxsetbackup_path=D:\dbbak\%localip%setbackup_dir=D:\dbb......
  • 简单的mysqldump备份(linux)
    备份小数据库用mysql自带的mysqldump就可以完成备份,写一个简单的适用于linux下跑的脚本。策略每天凌晨1点全备,保留7天备份脚本dbbak.sh#!/bin/bashexportPATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/mysql/bin:/root/bin:/usr/local/......
  • MySQL SQL函数
    MySQL数值函数1、CEILING()-返回最小的整数,使这个整数大于或等于指定数的数值运算。2、FLOOR()-返回最大整数,使这个整数小于或等于指定数的数值运算。3、ROUND()-四舍五入一个正数或者负数,结果为一定长度的值。=============================MySQL填充字符函数1、L......
  • MySQL JDBC连接参数rewriteBatchedStatements(转)
    原文:https://blog.51cto.com/u_16213583/9701812MySQLJdbc驱动在默认情况下会无视executeBatch()语句,把我们期望批量执行的一组sql语句拆散,一条一条地发给MySQL数据库,直接造成较低的性能。只有把rewriteBatchedStatements参数置为true,驱动才会帮你批量执行。不过,驱动具体是怎......
  • Mysql配置主从
    1.检查将要配置主从数据库的服务器a.两台数据库版本保持一致b.两台数据库数据保持一致c.两台数据库IP可以互相访问规约,假设主库IP为:192.168.56.102从库IP为:192.168.56.1032.修改主库配置#vim/etc/my.cnf   [mysqld]   log-bin=mysql-bin  //[必须]启用二......
  • 银河麒麟V10(ARM) 离线安装 MySQL
    银河麒麟V10(ARM)离线安装MySQL参考教程:https://www.cnblogs.com/liuweida/p/17105179.htmlhttps://www.cnblogs.com/wshisboy/p/16374015.html1.MySQL8.0.29版本下载直接官网下载:https://dev.mysql.com/downloads/mysql/选择版本:2.安装MySQL2.1删除原有的mariad......
  • 【MySQL】库操作,数据类型
    目录MySQL简介SQL语句分类库操作语句展示数据库创建数据库使用数据库删除数据库数据类型整型浮点型字符串日期类型MySQL简介数据库有关系型数据库和非关系型数据库。关系型数据库:是指采用了关系模型来组织数据的数据库。简单来说,关系模型指的就是二维表格模型,......