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;
如果主库是完全干净的,没有修改密码,日志信息如下所示
如果修改了root密码,日志信息如下所示
如果修改了root密码,并且立刻刷新了用户权限信息,日志信息如下所示
如果结果与上述图片展示的不同,不确定是否只是修改了主库的root密码+刷新权限,为了确保后续步骤不受意外影响,可以选择重新安装Mysql8.0,并且以非安全方式初始化,再登录mysql,再次执行show master status查看主库情况。
特别注意!!!从库安装后不要有任何操作
从库应该没有任何数据,登录mysql后,执行下方命令进行检查
# 免密登录mysql
mysql -uroot
# 查看从库日志信息
mysql > show master status;
从库如果是完全干净的,那么日志信息如下
如果从库没有进行任何操作,比如仅仅是重启了一下,日志信息也会会发生变化,如下
此时需要执行,将日志记录清空即从000001开始重新记录日志reset master
如果结果与上述图片展示的不同,为了确保后续步骤不受意外影响,可以选择重新安装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;
从库
再次检查从库日志状态
# 免密登录mysql,如果修改了root密码,需要添加-p参数登录
mysql -uroot
mysql > show master status;
日志信息应该显示为,如果不是,请参考“检查从库状态”小节
设置主从复制节点信息
# 免密登录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
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 ? 不同的微服务一般会有不同的