CentOs 7 MySql8.0.23之前的版本主从复制

准备俩台虚拟机并启动

俩台虚拟机都开启mysql后

查看二进制日志是否开启

先登录mysql

复制代码
mysql -u root -r

输入sql命令

复制代码
show variables like '%log_bin%';

如果log_bin 的value为OFF则是没有开启,跟着下面步骤开启二进制日志

退出mysql

复制代码
exit

vim /etc/my.cnf

在最底下添加

复制代码
log_bin=mysql_bin
server-id=1

效果如图

重启mysql

复制代码
systemctl restart mysqld

登录

复制代码
mysql -u root -p

查看是否开启

sql 复制代码
show variables like '%log_bin%';

随后配置第二台虚拟机也就是从库

和以上一样的配置,不同的是需要添加的server-id=2

来到主库的虚拟机进入mysql输入

sql 复制代码
show master status;

记住这查到的mysql_bin.000001和后面的154 然后切换到从库的虚拟机输入sql命令

sql 复制代码
change master to master_host='xxx.xxx.xxx.xxx',master_user='xxx',master_password='xxx',master_log_file='xxx',master_log_pos=xxx;

你需要替换此命令中的xxx

修改完后输入启动

sql 复制代码
start slave;

查看同步状态

sql 复制代码
show slave status\G

如何判断错误

第一步正确的做法第二步

第三步

如果这里显示uuid错误

进入到

sql 复制代码
cd /var/lib/mysql
sql 复制代码
vi auto.cnf

更改uuid(任意)

随后进入到mysql重新配置同上需要自行配置

sql 复制代码
change master to master_host='192.168.25.100',master_user='root',master_password='1234',master_log_file='mysql_bin.000001',master_log_pos=154;

测试

在主库中指向任意sql命令,从库中会跟着执行同样的sql命令

如在主库中输入sql命令

sql 复制代码
CREATE DATABASE db1;

然后去从库输入sql命令查看

复制代码
show databases;
相关推荐
我是一颗柠檬5 小时前
【MySQL全面教学】MySQL面试高频考点汇总Day15(2026年)
数据库·后端·mysql·面试
lolo大魔王6 小时前
Linux 文件系统超全面详解(原理、结构、挂载、分区、inode、日志、管理命令)
linux·运维·服务器
身如柳絮随风扬6 小时前
数据库读写分离:从原理到实战,构建高并发系统
数据库·mysql
磊 子8 小时前
详细讲解一下epoll
linux·io·epoll·io多路复用
printfLILEI8 小时前
php中的类与对象以及反序列化
linux·开发语言·php
我是一颗柠檬10 小时前
【MySQL全面教学】MySQL性能优化实战Day13(2026年)
数据库·后端·sql·mysql·性能优化·database
叠叠乐10 小时前
redmi k90 pro max 强解BL,刷海外rom, 并刷入sukisu ultra
linux
AI人工智能+电脑小能手10 小时前
【大白话说Java面试题 第84题】【Mysql篇】第14题:为什么用 InnoDB 存储引擎的表建议用整型的自增主键?
java·开发语言·数据库·mysql·面试
xiaoye-duck11 小时前
《Linux系统编程》Linux 进程间通信之管道基础解析:从匿名管道原理到基于管道的进程池实现
linux