MySQL8.0主从复制实现及遇到的个人问题

文章目录

  • 1、准备两个服务器或者虚拟机
  • 2、主库配置
  • 3、从库配置
  • 4、配置过程中使用到的命令
  • 5、遇到的问题

1、准备两个服务器或者虚拟机

这里使用的VM虚拟机的Centos、MySQL版本是8.0.26、使用FinalShell进行远程操作。

2、主库配置

  1. 修改MySQL配置文件(/etc/my.cnf)
#启用二进制日志
log-bin=mysql-bin
#服务器唯一id(不能重复)
server-id=100

在这里插入图片描述

  1. 重启mysql服务
    linux命令:systemctl restart mysqld
  2. 登录MySQL
  3. 创建用户并分配权限
    因为我的MySQL版本是8.0,必须要创建用户和分配用户权限分开操作。
# 已经不再使用
GRANT REPLICATION SLAVE ON *.* TO 'mengting'@'%' identified by '123456';
# 先创建用户,在赋予权限
# 在创建用户的时候,必须设置密码的等级  不然会创建失败(根据自己的设置进行决定)
set global validate_password.policy = 0;
set global validate_password.length = 10;CREATE USER 'mengting'@'%' IDENTIFIED BY '1111111111';
GRANT REPLICATION SLAVE ON *.* TO 'mengting'@'%';
  1. 执行show命令并记录File和Position(非常重要)
show master status;
# 执行完就不要进行操作了

在这里插入图片描述

3、从库配置

  1. 测试:是否能在从数据库使用上面创建的用户访问主数据库
# -u后面是账号,-p后面是密码,ip是主数据库的ip地址
mysql -h 192.168.110.110 -umengting -p1111111111
# 如果可以连接成功证明端口都是可以正常连接的
# 如果不能连通可以查看一下是否是防火墙的原因(可以暂时关闭防火墙)
  1. 修改MySQL配置文件(/etc/my.cnf)
#不要重复即可
server-id=101

在这里插入图片描述
3. 重启MySQL服务

#重启MySQL服务
systemctl restart mysqld
  1. 执行sql
#刚才记录的File和Position在这里要使用
#将master_log_file与master_log_pos修改为自己对应的值
change master to master_host='192.168.110.110',
master_user='mengting',master_password='1111111111',
master_log_file='mysql-bin.000001',master_log_pos=439;
  1. 查看从机状态
show slave status \G;

在这里插入图片描述
看到两个Yes代表配置成功了,可以进行测试了。

4、配置过程中使用到的命令

  1. linux命令:
--查看ip地址
ifconfig或ip addr
--暂时关闭防火墙
systemctl stop firewalld
--查看防火墙状态
systemctl status firewalld
--紧张开机启动防火墙
systemctl disable firewalld
--重启mysql服务
systemctl restart mysqld
--查看mysql服务状态
systemctl status mysqld
--启动mysql服务
systemctl start mysqld
--停止mysql服务
systemctl stop mysqld
--查看mysql错误日志
vim /var/log/mysql.log
--查看自动生成的root密码
grep 'temporary password' /var/log/mysqld.log
--查看是否开启某个端口
netstat -an|grep 3306
  1. mysql命令:
--远程登录
mysql -h 192.168.110.110 -uroot -p123456
--停止复制进程
stop slave;--重置复制状态(常用)
--RESET SLAVE命令用于重置复制状态。当你执行这个命令时,
--从服务器会删除所有复制相关的状态信息,包括二进制日志文件和位置、
--错误日志、中继日志等。这相当于重新初始化从服务器的复制状态,
--以便重新开始从主服务器同步数据。
--注意,这个命令需要具有足够权限的管理员或用户才能执行。
reset slave;
--开启复制进程
start slave;--设置密码等级
set global validate_password.policy = 0;
--设置密码长度
set global validate_password.length = 4;
--创建用户
create user 'root'@'%' IDENTIFIED WITH mysql_native_password BY '1234';
--分配用户权限(全部权限)
grant all on *.* to 'root'@'%';
--在主服务器创建从机数据库用户(用于主从复制)
CREATE USER 'mengting'@'%' IDENTIFIED BY '0123456789';
GRANT REPLICATION SLAVE ON *.* TO 'mengting'@'%';--从机服务器进行主从复制
change master to master_host='192.168.110.110',
master_user='mengting',master_password='1111111111',
master_log_file='mysql-bin.000001',master_log_pos=156;
--查看主机(主数据库)状态
show master status;
--查看从机
show slave status;

5、遇到的问题

  1. Slave_IO_Running显示NO
    Slave_SQL_Running显示NO
    检查配置文件是否出错、检查是否成功开启主从复制SQL语句、检查服务器端口是否开放、检查是否可以在从机服务器连接到主机数据库(重要)

  2. Slave_IO_Running显示Connection
    Slave_SQL_Running显示NO
    检查网络是否连接,如果网络没有问题可以等待一会(比较慢)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/319783.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ROS学习记录:在ROS中用C++实现激光雷达避障

前言 本文建立在成功获取激光雷达数据的基础上&#xff0c;详细参考 在ROS中用C实现获取激光雷达的数据 一、实现思路 二、在VScode中打开之前编写好的lidar_node.cpp 三、在lidar_node.cpp中写入如下代码 #include <ros/ros.h> #include <std_msgs/String.h> …

thinkadmin安装步骤

一,先cmd运行安装命令 ### 创建项目&#xff08; 需要在英文目录下面执行 &#xff09; composer create-project zoujingli/thinkadmin二,在confing中的database.php配置数据库 三,将仓库的data复制到app目录下 https://gitee.com/zoujingli/think-plugs-data 四,在cmd运…

MySQL 8.0 开关 Redo Logging

一 前言 前几天有客户测试使用云数据库的时候提出 要禁止mydumper 关闭redo log的操作 (说白了就是导入数据时保持MySQL 实例的redo logging功能)&#xff0c; 这才想起 在 MySQL 8.0.21 版本中&#xff0c;开启了一个新特性 “Redo Logging 动态开关”。 在新实例导数据的场…

Sectigo泛域名https证书有什么用

Sectigo旗下有泛域名https证书实现了同时为多个域名网站提供安全加密服务&#xff0c;虽然将域名网站的类型限制在了域名以及域名旗下的二级子域名中。Sectigo旗下的泛域名https证书分为DV基础型和OV企业型&#xff0c;提高了https证书对各个场景的适配。今天就随SSL盾小编了解…

迅为RK3588开发板使用 FFMpeg 进行推流

Debian/Ubuntu 系统使用以下命令安装 FFMpeg &#xff0c;如下图所示&#xff1a; apt-get install ffmpeg 使用 ifconfig 查看开发板 ip 为 192.168.1.245 如下图所示&#xff1a; 使用 FFMpeg 推流一个 mp4 视频进行测试&#xff0c;作者将测试视频 test.mp4 放在了根目录下…

如何开通ChatGPT Plus:支付宝充值方法|apple store购买ChatGPT4|支付宝充值apple ID

充值方式一般有两种一种是虚拟卡&#xff0c;还有就是使用礼品卡&#xff0c;我个人 比较喜欢使用虚拟卡&#xff0c;因为有朋友使用礼品卡封号了什么也没有 但是你用虚拟卡&#xff0c;就算封号你的钱会退回到卡里面&#xff0c;这样的话自己在注册一个账号就好了&#xff0c…

并发编程下的集合:数组寻址、LinkedList、HashMap、ConcurrentHashMap

数组如何寻址 a[n]起始地址(n*字节数) 译&#xff1a;a[2]100(2*4) 2为下标、4为int类型字段占四个字节 LinkedList LinkedList为双向链表结构&#xff0c;链表结构又分为单向、双向、以及循环。 // 双向链表 private static class Node<E> {E item;Node<E> nex…

鸿蒙系列--装饰器

一、基础UI组件结构 每个UI组件需要定义为Component struct对象&#xff0c;其内部必须包含一个且只能包含一个build(){}函数&#xff0c;用于绘制UI&#xff1b;struct之内、build()函数之外的地方用于存放数据。 二、基本UI装饰器 Entry 装饰struct&#xff0c;页面的入口…

.cer格式证书文件和 .pfx格式证书文件有什么区别?

这里我们将讨论.cer和.pfx文件类型之间的差异。 什么是数字证书&#xff1f; 数字证书在电子通信中用作验证身份的密码机制。我们需要这些证书来建立安全的在线通信渠道&#xff0c;并确保数字数据的隐私、真实性和正确性。 数字证书包括主题&#xff08;实体详细信息&#xf…

MyBatis学习二:Mapper代理开发、配置文件完成增删改查、注解开发

前言 公司要求没办法&#xff0c;前端也要了解一下后端知识&#xff0c;这里记录一下自己的学习 学习教程&#xff1a;黑马mybatis教程全套视频教程&#xff0c;2天Mybatis框架从入门到精通 文档&#xff1a; https://mybatis.net.cn/index.html Mapper代理开发 目的 解决…

sql:定时执行存储过程(嵌套存储过程、使用游标)

BEGINDeclare FormNo nvarchar(20) --单号Declare Type nvarchar(50) --类型Declare PickedQty float -Declare OutQty float Declare 生产量 floatDeclare 已装箱数量 float Declare 已入库数量 floatDeclare 损耗数量 float Declare 退货品出库数量 intdeclare k c…

C#:如何产生一个临时文件

在我们实际编程中&#xff0c;经常有将内容写到一个临时文件的需要。 比如&#xff1a;将网络上的图片下载下来&#xff0c;获取到图片的一些信息。 代码如下&#xff0c;看结果可知&#xff1a; 临时文件都是保存在系统临时文件夹的目录下&#xff0c;临时文件的扩展名统一…