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

主从复制启动

需求:现需要将原windows与虚拟机Centos的主从复制转移,两台虚拟机上运行。已提前安装好Mysql,并将虚拟机CentOS克隆复制到运行

在这里插入图片描述

问题一:若完全克隆复制已安装好的虚拟机系统时,会导致两台服务器的MAC地址、ip地址、UUID相同,以及mysql里server的uuid也需改

vi /etc/sysconfig/network-scripts/ifcfg-ens33
BOOTPROTO=static #固定ip需将dhcp改静态
UUID生成下更新 #可使用命令:uuidgen ens33
HWADDR#随机生成[硬件-网络适配器NAT-高级-MAC生成新]
IPADDR=192.168.138.101 #service network restart 重启网络/systemctl restart network或者执行不了可重启服务器

mysql库里的uuid修改与上面生成的一致,文件在/var/lib/mysql/auto.cnf 并进行 systemctl restart mysqld 重启mysql服务。

问题二:网络互相ping不通,需要从虚拟网络编辑器VMnet8 改为NAT模式,子网IP为192.168.138.0,子网掩码 255.255.255.0 ,网关IP为192.168.138.1。其次进行本机设置 修改网络连接 Vmware Network Adapter VMnet8,开放防火墙即可网络联通

在这里插入图片描述
防火墙端口开放
添加:firewall-cmd --zone=public --add-port=3306/tcp --permanent
查看:firewall-cmd --zone=public --list-ports
更新:firewall-cmd --reload

数据库表没用户权限
mysql -u root -p

mysql> use mysql;
mysql> update user set Host='%' where User='root';
mysql> flush privileges; //用于重新加载权限表,无需重启MySQL(修改用户权限后刷新)

问题三:mysql8.0 基于日志(binlog)的主从(Master-Slave)复制方式,注意版本数据一致,server_id 唯一

附注:https://www.bilibili.com/video/BV13a411q753?spm_id_from=333.788.videopod.episodes&vd_source=48c26d71519141a0445dd3e33f722149&p=172
主库执行以下:

vim /etc/my.cnf.d/mysql-server.cnf
[mysqld]
log-bin=mysql-bin
server-id=100mysql> CREATE USER 'xiaozhang'@'192.168.138.101' IDENTIFIED with mysql_native_password BY '123456';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'xiaozhang'@'192.168.138.101';//或者用@'%'所有用户
mysql> FLUSH PRIVILEGES;//刷新授权表信息
mysql> show master status;

从库执行以下:

vim /etc/my.cnf.d/mysql-server.cnf
[mysqld]
log-bin=mysql-bin
server-id=101mysql> CHANGE MASTER TO MASTER_HOST='192.168.138.100',MASTER_USER='xiaozhang',MASTER_PASSWORD='123456',MASTER_LOG_FILE='binlog.000001',MASTER_LOG_POS=856;  //也执行此语句,可重新配置
mysql> show slave status\G;
mysql> start slave;
出现小问题A:

Slave_IO_Running: NO
IO NO eg: Got fatal error 1236 from master when reading data from binary log: ‘Could not find first log file name in binary log index file’

问题可采取下述修改:
主库操作执行-//在主库上执行刷新日志

mysql> flush logs;
mysql> show master status\G;

从库操作亦执行-//停止从库主从复制,并设置change

mysql> stop slave;
mysql> CHANGE MASTER TO MASTER_LOG_FILE='binlog.000007',MASTER_LOG_POS=156;
mysql> start slave;
mysql> show slave status\G
出现小问题B:

Slave_SQL_Running: NO

一般是事务回滚造成的,在从库中执行以下语句:

mysql> stop slave ; //修复完生产问题,数据修复之后恢复同步
mysql> set GLOBAL SQL_SLAVE_SKIP_COUNTER=1; --跳过一个事务,可选(在主从库维护中,需要跳过某个无法执行的命令)
mysql> start slave ;
mysql> show replica status\G;

附:其他需注意情况

NO.1 何时使用 RESET MASTER?

全新搭建主从复制环境:清除旧日志,从头开始同步。
清理历史二进制日志:例如完成大规模数据清理后,不再需要旧日志。
彻底重置主服务器状态:放弃所有复制相关的日志和位置信息。

NO.2 何时使用 RESET SLAVE?(reset slave all 全清空)

会使副本忘记其在Master的二进制日志中的复制位置,该语句旨在用于干净启动从副本

NO.3 数据修复,MySQL主从同步报错(数据不一致)

表结构和值较复杂,需在主库创建临时表并dump,在从库执行dump文件中的insert语句
主库执行:

mysql> create table backup like t_table;
mysql> insert into backup select * from t_table where t_id=18013;
mysql> commit

dump数据:
mysqldump -uroot -p d_databases backup> backup.sql

http://www.xdnf.cn/news/627949.html

相关文章:

  • 二叉树层序遍历6
  • C++--auto详解
  • 2025家政预约小程序开发:功能模块解析与行业解决方案
  • Cookie 与 Session
  • Adminer 连接mssql sqlserver
  • SEO长尾词优化精准布局
  • 构建Harbor私有镜像库(详细版)
  • 《BI 展示:从核心目标到未来趋势》
  • 『uniapp』uni-share 分享功能 使用例子(保姆级图文)
  • STM32上配置图像处理库时常见错误总结
  • 【IEEE 2025】低光增强KANT(使用KAN代替MLP)----论文详解与代码解析
  • Java——设计模式(Design Pattern)
  • DAY 35
  • Shell三剑客之awk
  • 全球化 2.0 | 云轴科技ZStack助力中东智慧城市高性能智能安防云平台
  • TypeScript小技巧使用as const:让类型推断更精准。
  • exti line2 interrupt 如何写中断回调
  • 数据库中表的设计规范
  • 【软考】【信息系统项目管理师】2025年5月24日考试回忆版,祝明天考试的兄弟们顺利
  • maxkey单点登录系统
  • Neo4j(二) - 使用Cypher操作Neo4j
  • iOS 直播特殊礼物特效实现方案(Swift实现,超详细!)
  • STM32F446主时钟失效时DAC输出异常现象解析与解决方案
  • AtCoder AT_abc407_d [ABC407D] Domino Covering XOR
  • 【Web前端】jQuery入门与基础(二)
  • 免费PDF工具-PDF24V9.16.0【win7专用版】
  • TypeScript基础数据类型详解总结
  • 常见的图像生成模型
  • 嵌入式开发学习日志(linux系统编程--进程(1))Day27
  • winsever2016Web服务器平台安装与配置