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

mysql主从复制配置

以centos 7为例:

两台虚拟机:

192.168.65.157 主节点(master)

192.168.65.177 从节点(slave)

一.master配置文件

vim /etc/my.cnf

1.在[mysqld]添加内容:

server-id=1 
log-bin=mysql-bin  
binlog_format=mixed   
binlog_row_image=MINIMAL
binlog-rows-query-log_events=1
binlog-ignore-db=mysql
binlog-ignore-db=sys

二.slave配置文件

vim /etc/my.cnf

1.在[mysqld]添加内容:

server-id=2 
relay-log=mysql-relay-log  

三.MySQL创建主从同步账号并授权

1.在主库创建一个专门用来复制的数据库用户,所有从库都用这个用户来连接主库,确保这个用户只有复制的权限:

CREATE USER 'slave'@'192.168.%.%' IDENTIFIED BY 'slave';  
GRANT replication ON *.* TO 'slave'@'192.168.%.%' WITH GRANT OPTION;

2.如果出现密码不符合要求的问题则按以下解决,修改密码的策略,使得可以设置简单的密码:

SHOW VARIABLES LIKE 'validate_password%';

密码的长度是由validate_password_length决定的,但是可以通过以下命令修改:

set global validate_password_length=4;

validate_password_policy决定密码的验证策略,默认等级为MEDIUM(中等),可通过以下命令修改为LOW(低):

set global validate_password_policy=0;

3.查询已创建的用户:

select user,host from mysql.user;

授予用户复制权限:

grant replication slave on *.* to 'slave'@'192.168.%.%';

查看用户权限:

show grants for 'slave'@'192.168.%.%';

如果权限过大回收用户其他权限:

REVOKE ALL PRIVILEGES ON *.* FROM 'slave'@'192.168.%.%';  
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'192.168.%.%';

刷新权限:

flush privileges

4.关闭防火墙:

systemctl stop firewalld
systemctl disable firewalld

再从服务器上使用slave账户远程连接主服务器:

mysql -h192.168.65.157 -uslave -p

连接成功查看MySQL主服务器的状态

show master status;

四.MySQL主库备份数据:

mysqldump -uroot -p123456 --master-data --all-databases > master.sql

1.将备份的文件master.sql拷贝到从服务器

scp master.sql 192.168.65.177:/root

2.在从数据库中执行下列语句,将备份数据还原到从服务器中,同步数据:

mysql -p123456 < master.sql

五.从服务器登录mysql进行主节点配置:

change master to 
master_host='192.168.65.157',
master_port=3306,
master_user='slave',
master_password='slave',
master_log_file='mysql-bin.000004',
master_log_pos=155;

1.主要是这两个参数需要再主节点查看自己的:

在主节点服务器输入:

show master status\G

显示以下内容:

master_log_file='mysql-bin.000004',
master_log_pos=155;

2.从节点启动slave:

start slave;

查看从服务状态:

show slave status\G

出现主节点的信息即可。

六.验证是否成功:

1.在主节点数据库中创建一个数据库:

2.在从服务器mysql查看是否有新建的库:

七.配置过程中遇到的问题:

1.[mysql] [主从同步错误] Last_IO_Errno: 2061
Last_IO_Errno: 2061

原因:加密方式和解密方式不一致,修改密码加密规则.进入mysql控制台

ALTER USER 'slave'@'192.168.65.%' IDENTIFIED WITH mysql_native_password BY 'slave';
FLUSH PRIVILEGES;

2.因为是克隆的虚拟机导致mysql的uuid一样发生了冲突修改任意一个服务器mysql的uuid即可


http://www.dtcms.com/a/613885.html

相关文章:

  • html网站模板建站手机建网站推广
  • Vue 项目实战《尚医通》,预约挂号的路由与静态搭建,笔记36
  • 网站建设 风险防控网站首页的head标签内
  • 多用户跨学科交流系统(3):评论模块与 Spring Boot 全局异常处理
  • 前后端分离部署学之思在线考试系统
  • 在树莓派4B上部署ONNX格式的YOLOv8-Pose
  • websocket和传统socket有何差别?是属于一个子集还是完全不同?
  • 双指针问题2(c++)
  • 龙岩市城乡规划建设局网站三只松鼠的网络营销方式
  • Docker容器使用手册——入门篇(上)
  • C语言编译器网页版 | 轻松编写与调试C语言程序
  • QT注册自定义类相关的两个用法
  • 进程间关系(linux)
  • WordPress外贸成品网站的免费获取渠道
  • 经典算法题之汉明距离(二)
  • 公司注册网站模板上杭网站设计
  • 基于Spring AI的RAG和智能体应用实践
  • Flutter:跨平台开发终极指南
  • Python-将身份证正反面图片-生成PDF
  • 建单页网站搜网站的关键词
  • 数据科学每日总结--Day20--区块链
  • 自建网站平台有哪些建立个人网站能干
  • Docker中容器的备份方法和步骤
  • 折叠屏手机如何选:横向内折与竖向内折形态及核心参数解析
  • 我想网上做网站软件项目管理书籍推荐
  • el-table组件右侧出现空隙
  • 南宁响应式网站制作抖音运营公司排名前十
  • 【IO模型与并发服务器】
  • QT QML Item基类浅谈
  • Go语言学习笔记(二)