mysql从库主库,MySQL 搭建全新主从(不基于已经有数据的主库)

MySQL 搭建全新主从(不基于已经有数据的主库)

MySQL 搭建全新主从(不基于已经有数据的主库)

本博文仅记录个人学习

本博文针对MySQL 8.0 ,但MySQL5.7的搭建过程一模一样,只是修改mysql用户密码的命令有所区别,MySQL5.7也可以跟着一步步操作,应该不会有问题。

本文是全新搭建主从,如果主库有旧数据,不适用,之后会更新相关学习笔记

搭建 MySQL全新主从

默认主库与从库都没有任何数据,是全新数据库,刚刚安装完成后的状态!

如果数据库安装完成后修改了root密码,数据库会生成相应日志,建议在安装时主库与从库都采用非安全初始化,初始化完成后,不要修改root密码,主从搭建完成后,再在主库修改root密码。

主库应该没有任何数据,或者少许数据(比如修改了root密码,那么会有少许的日志记录),最好是没有任何数据,主从搭建完成之后,再在主库修改root密码。

# 免密登录mysql,如果修改了root密码,需要添加-p参数登录

mysql -uroot

# 查看主库日志信息

mysql > show master status;

如果主库是完全干净的,没有修改密码,日志信息如下所示

53002d096bd85a2ec8c47b6945d8b497.png

如果修改了root密码,日志信息如下所示

5f6c7720ba8c674890138daf8c848919.png

如果修改了root密码,并且立刻刷新了用户权限信息,日志信息如下所示

4e2b56eb7bd906b2099be67e49214502.png

如果结果与上述图片展示的不同,不确定是否只是修改了主库的root密码+刷新权限,为了确保后续步骤不受意外影响,可以选择重新安装Mysql8.0,并且以非安全方式初始化,再登录mysql,再次执行show master status查看主库情况。

特别注意!!!从库安装后不要有任何操作

从库应该没有任何数据,登录mysql后,执行下方命令进行检查

# 免密登录mysql

mysql -uroot

# 查看从库日志信息

mysql > show master status;

从库如果是完全干净的,那么日志信息如下

040899a411988f262a4110052cc00f62.png

如果从库没有进行任何操作,比如仅仅是重启了一下,日志信息也会会发生变化,如下

f6d02c5d5519fe8a1a77f6e72743d123.png

此时需要执行,将日志记录清空即从000001开始重新记录日志reset master

200083741a70329c0a61f00d3599798e.png

如果结果与上述图片展示的不同,为了确保后续步骤不受意外影响,可以选择重新安装Mysql8.0,并且以非安全方式初始化,再登录mysql,再次执行show master status查看从库情况。

请检查主库与从库的配置文件是否配置了以下参数

如果使用了本文的安装脚本,请务必再次检查参数配置,特别是从库的read_only参数需要设置。

当设置read_only=on表示本数据库只能读不能写(root用户仍可以写),注意,当需要进行主从切换时,主库与从库的read_only参数也要相应的进行更改!!!!!

主库参数检查

# 主从复制依赖于mysql的二进制日志,开启主从复制的必要前提,需要设置

# 例子:log_bin=/dbdata/mysql3306/log/mysql-bin

log_bin=参照例子

# 主从复制中各节点的身份id,主库与从库的server_id不能相同,一般设置为正整数

server_id=正整数类型,主库从库的server_id不能相同

# 从节点回放日志存放路径,

# 例子:relay_log=/dbdata/mysql3306/log/mysql-relay-bin

relay_log=参照例子

# 以下为必要条件,不需要人为设置参数值,直接设置即可

gtid_mode=ON

enforce-gtid-consistency=true

log-slave-updates=1

relay-log-info-repository=TABLE

relay_log_recovery=1

master-info-repository=TABLE

binlog-format=row

从库参数检查

注意!!!!一般从库不允许写操作,只允许读,所以从库的配置文件需要额外添加一个参数read_only=on

# 从库额外需要的参数,添加后,非root用户连接从库后,只能进行读操作

read_only=on

# 主从复制依赖于mysql的二进制日志,开启主从复制的必要前提

# 例子:log_bin=/dbdata/mysql3306/log/mysql-bin

log_bin=参照例子

# 主从复制中各节点的身份id,主库与从库的server_id不能相同,一般设置为正整数

server_id=正整数类型,主库从库的server_id不能相同

# 从节点的回放日志存放路径,需要设置

# 例子:relay_log=/dbdata/mysql3306/log/mysql-relay-bin

relay_log=参照例子

# 以下为必要条件,不需要人为设置参数值,直接设置即可

gtid_mode=ON

enforce-gtid-consistency=true

log-slave-updates=1

relay-log-info-repository=TABLE

relay_log_recovery=1

master-info-repository=TABLE

binlog-format=row

主库

主库需要创建专门用于主从复制的用户

# 免密登录mysql,如果修改了root密码,需要添加-p参数登录

mysql -uroot

# 创建用户

mysql > create user [email protected]'从库的IP地址' identified with mysql_native_password by '复制用户的密码'

mysql > grant replication slave on *.* to [email protected]'从库的IP地址';

mysql > flush privileges;

查看主库日志状态

mysql > show master status;

061aebc85e569f15c2837b0894f5c1df.png

从库

再次检查从库日志状态

# 免密登录mysql,如果修改了root密码,需要添加-p参数登录

mysql -uroot

mysql > show master status;

日志信息应该显示为,如果不是,请参考“检查从库状态”小节

8cfa8bf1d477ba3e2ac3415d234721e4.png

设置主从复制节点信息

# 免密登录mysql

mysql -uroot

# 执行下方语句

mysql > CHANGE MASTER TO MASTER_HOST='主库的IP地址',

MASTER_USER='repl',MASTER_PASSWORD='复制用户的密码',

MASTER_PORT=3306,

MASTER_AUTO_POSITION=1;

开启主从

# 设置好主从复制相关参数后,开启主从复制

mysql > start slave;

检查主从复制状态,出现两个yes,并且日志号与主库相同表示搭建成功

mysql > show slave status\G

a2b9a1c422451a262e443d1546526d2f.png

MySQL 搭建全新主从(不基于已经有数据的主库)相关教程

分享一个搭建积分商城系统的经验

分享一个搭建积分商城系统的经验 积分商城系统经过二十多年的演变发展,技术已趋于成熟,打造一个积分商城并不难,但是想要搭建一个能高效运营的积分商城系统,需要怎么下功夫呢? 在众多关于积分商城系统的文章介绍中,大家对积分的定义、积分商城系统、积

MongoDB 搭建复制集

MongoDB 搭建复制集 下载 https://blog.csdn.net/ko0491/article/details/108764916 建立3个配置文件 mongo_27017.conf #数据目录dbpath=/data/mongo/data/server1#端口号port=27017bind_ip=0.0.0.0#以后台运行fork=true# 日志路径logpath = /data/mongo/logs

Centos7.6搭建FTP服务

Centos7.6搭建FTP服务 一、FTP安装及配置 1.首先检查是否已经安装vsftp服务: [root@localhost ~]#rpm -qa | grep vsftp 执行后出现如vsftpd-3.0.2-9.el7.x86_64,说明已安装,没有则未安装。 2.使用root用户在/root目录新建createFTP目录: [root@localhost

Mysql免安装版 提示缺少vcruntime140.dll

Mysql免安装版 提示缺少vcruntime140.dll 解决办法一:重新修复visual C++2015,右键选择更改,修复. 我的还是提示缺少vcruntime140.dll 解决方法二:重新下载并安装vcruntime140.dll,将安装包放到C:\windows\system32文件夹下,解决失败 解决方法三:卸载visual C

Linux下内网DNS服务器搭建及使用

Linux下内网DNS服务器搭建及使用 Linux下内网DNS服务器搭建及使用 DNS 概念 FQDN:完全限定域名,即每个域在全球唯一,域不是域名,google.com 是域,www.google.com 是域名。 域可以分为根域(.)和顶级域(TLD) 顶级域又可以分为三类: 1. 通用顶级域(.co

Django项目(电商)第一课 项目前环境搭建 笔记

Django项目(电商)第一课 项目前环境搭建 笔记 项目准备 项目需求分析 需求分析原因: ****可以整体的了解项目的业务流程和主要的业务需求 ****项目中,需求驱动开发,即开发人员需要以需求为目标来实现业务逻辑 需求分析方式: ****企业中,借助产品原型图

搭建个人Leanote云笔记本

搭建个人Leanote云笔记本 Leanote是一款在线的云笔记应用,有如下特点: 支持网页、PC、手机APP客户端和微信版,随时记录,方便分享,支持语音,图片输入。代码高亮,涵盖所有主流语言的代码高亮,随心所欲在Leanote里写代码,记知识。Markdown 编辑器,实时同

微服务网关限流

微服务网关限流 微服务网关限流搭建 1.微服务网关Gateway 1.1 微服务网关概述 1.2微服务网关搭建 1.3 微服务网关跨域 1.4 微服务网关过滤器 2 网关限流 2.1 思路分析 2.2 令牌桶算法 2.3 网关限流代码实现 1.微服务网关Gateway ? 不同的微服务一般会有不同的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值