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 分钟前
解决IP不够用的问题
linux·网络·笔记
码里法16 分钟前
centos安装nginx并配置https完整版
nginx·https·centos
zly350023 分钟前
linux查看正在运行的nginx的当前工作目录(webroot)
linux·运维·nginx
QT 小鲜肉28 分钟前
【Linux命令大全】001.文件管理之file命令(实操篇)
linux·运维·前端·网络·chrome·笔记
Asurplus38 分钟前
Centos7安装Git环境
git·centos·yum·dnf
qualifying40 分钟前
MySQL——表的操作
数据库·mysql
问道飞鱼1 小时前
【Linux知识】Linux 虚拟机磁盘扩缩容操作指南(按文件系统分类)
linux·运维·服务器·磁盘扩缩容
学Linux的语莫1 小时前
mysql主从同步(复制)搭建
数据库·mysql
MySQL实战2 小时前
MySQL 在哪些场景下不会写 binlog
mysql
苹果酱05672 小时前
解决linux mysql命令 bash: mysql: command not found 的方法
java·vue.js·spring boot·mysql·课程设计