当前位置: 首页 > article >正文

mysql AB复制

主从复制的基本过程如下(一定要背下来找工作的时候,只要你投的有数据库运维这个方向就没有不问的):

1)、Mysql  Slave端的IO进程连接上Master,向Master请求指定日志文件的指定位置(或者从最开始的日志)之后的日志内容;

2)、Master接收到来自Slave的IO进程的请求后,负责复制的IO进程根据Slave的请求信息,读取相应日志内容,返回给Slave 的IO进程。并将本次请求读取的bin-log文件名及位置一起返回给Slave端。

3)、Slave的IO进程接收到信息后,将接收到的日志内容依次添加到Slave端的relay-log文件的最末端,并将读取到的Master端的 bin-log的文件名和位置记录到master-info文件中,以便在下一次读取的时候能够清楚的告诉Master“我需要从某个bin-log的哪个位置开始往后的日志内容,请发给我”;

4)、Slave的Sql进程检测到relay-log中新增加了内容后,会马上解析relay-log的内容成为在Master端真实执行时候的那些可执行的内容,并在自身执行。

配置步骤:

主服务器:192.168.60.116        master.com

从服务器:192.168.60.117        slave.com

主服务器的配置——

[root@master ~]# mkdir /backup/        #设置binlog目录

[root@master ~]# chown -R mysql.mysql /backup/        #设置权限

[root@master ~]# mysqldump -u root -p123 --all-databases > /all.sql        #全备

[root@master ~]# scp /backup/all.sql 192.168.60.117:/backup/        #将全备拷贝至从服务器

[root@master ~]# vim /etc/my.cnf        #开启binlog日志

[mysqld]
socket=/var/lib/mysql/mysql.sock

#开启binlog日志
server-id=1
log-bin=/backup/master
log-bin-index=/backup/master

[mysql]
socket=/var/lib/mysql/mysql.sock

[root@master ~]# systemctl restart mysqldd        #重启mysql使配置生效

(重启不成功多killall mysqld几次)

[root@master ~]# mysql -uroot -p123

MySQL [(none)]> grant replication slave on *.* to slave@'192.168.60.117' identified by '123';

#授权从服务器账号slave
 

从服务器的配置——

[root@slave ~]# mysql -uslave -p123 -h 192.168.60.116        #测试主服务器给的账号能不能登录

[root@slave ~]# mysql -uroot -p123 < /backup/all.sql        #将主服务器的全备导入,做同步

[root@slave ~]# vim /etc/my.cnf        #设置从服务器实例的唯一标识符server-id

[mysqld]
socket=/var/lib/mysql/mysql.sock
server-id=2

[mysql]
socket=/var/lib/mysql/mysql.sock

[root@slave ~]# systemctl restart mysqldd        #重启使配置生效

[root@slave ~]# mysql -u root -p123       

切换到主服务器看一下偏移量:

MySQL [(none)]> stop slave;        #停止主从复制服务线程

MySQL [(none)]> change master to  master_host='192.168.60.116', master_user='slave', master_password='123', master_log_file='master.000002', master_log_pos=451;
Query OK, 0 rows affected, 2 warnings (0.01 sec)

#配置从服务器的主库连接信息

MySQL [(none)]> start slave;        #开启主从复制服务线程

MySQL [(none)]> show slave status\G;        #查看从服务器复制状态详情

报错——

Slave_IO_Running: No
Slave_SQL_Running: Yes
 

原因一:

从服务器的主库连接信息配置错误,偏移量不对,或者主服务器的偏移量发生了变化

解决方法:

查看一下主服务器的偏移量,重新再配置从服务器的主库连接信息。

原因二:

主服务器的uuid和从服务的uuid相同,这可能是从同一台原型机克隆下来的缘故。

解决方法:

主服务器:
[root@master ~]# vim /usr/local/mysql/data/auto.cnf

[auto]
server-uuid=d2183533-e9fe-11ef-94b3-000c297e0973

[root@master ~]# systemctl restart mysqldd

从服务器:

[root@slave ~]# vim /usr/local/mysql/data/auto.cnf

[auto]
server-uuid=d2183533-e9fe-11ef-94b3-000c297e0972

[root@slave ~]# systemctl restart mysqldd


http://www.kler.cn/a/572833.html

相关文章:

  • scBaseCamp:一个AI代理的可持续扩充的单细胞数据存储库
  • 【linux】文件与目录命令 - uniq
  • 信创:信息技术应用创新产业
  • [Redis] 终极缓存四连杀:缓存预热、缓存击穿、缓存穿透、缓存雪崩,真的懂了吗?
  • 为什么过滤器需要一个 Wrapper 来 extends HttpServletRequestWrapper
  • 神经网络为什么要用 ReLU 增加非线性?
  • DeepSeek R1模型医疗机构本地化部署评估分析(Discuss V1版上)
  • 探索IntelliJ IDEA的Tongyi Lingma插件:AI编程助手的新体验
  • Java项目中ES作为时序库
  • PHP之常量
  • 基于 Kubernetes 搭建 DevOps 持续集成环境
  • DeepSeek基础学习:深度讲解AI大模型基本原理
  • Unity:物体指定初速度、方向移动方法
  • day1 第二次入门rust
  • dify、open-webui、chatbox 对比
  • MFC扩展库BCGControlBar Pro v36.1新版亮点 - 对话框表单组件升级
  • Linux 命令终极指南:分类详解与实战场景
  • 内核编程八:基于printk宏的pr_* 宏
  • Pywinauto Recorder: 将Windows操作转化为Python脚本,高效简易地实现操作自动化
  • 【单片机通信技术】STM32 HAL库 SPI主从机通过串口发送数据