本文使用MySQL原生支持的主从同步机制,详细记录了配置步骤及运维操作方法,可供大家直接参考、使用。

本文假设已经部署了两台主机的MySQL软件,且数据库服务正常,详细部署步骤可本站搜索:"mysql二进制安装包部署"

■■ 主从配置

■ master 授权同步账户

CREATE USER 'repl'@'10.19.238.241' IDENTIFIED WITH MYSQL_NATIVE_PASSWORD by 'passwd';
GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'repl'@'10.19.238.241';
FLUSH PRIVILEGES;

■ master 修改配置文件

vim /etc/my.cnf

# 配置server id,建议采用ip地址最后一段以便于区分
server_id = 240
log_bin = master-bin
binlog_format = ROW # 作为从库时使用
relay_log = master-relay-bin # 作为从库时,来自主库的更新操作是否写入日志,默认值为OFF,配置 on 时,其他节点以此节点做主库时才能进行同步
log_slave_updates = on # 以下两个为可选选项,见字可知意
expire_logs_days = 7
max_binlog_size = 1G # 设置系统库的日志不计入binlog
# 注:Binlog_Do_DB/Binlog_Ignore_DB 两个参数互斥,一般只选择其一设置,只能在启动命令行中或配置文件中设置
binlog_ignore_db = mysql
binlog_ignore_db = sys
binlog_ignore_db = information_schema
binlog_ignore_db = performance_schema # 同步时忽略系统库,但 create user 时数据还是会同步的
replicate_ignore_db = mysql
replicate_ignore_db = sys
replicate_ignore_db = information_schema
replicate_ignore_db = performance_schema # 同步时忽略系统库的表,这样在 create user 时也不会进行同步了
replicate_wild_ignore_table = mysql.%
replicate_wild_ignore_table = sys.%
replicate_wild_ignore_table = information_schema.%
replicate_wild_ignore_table = performance_schema.%

■ master 服务重启

参见前文:"mysql二进制安装包部署"

■ slave 修改配置文件

vim /etc/my.cnf

同 master,只修改如下3项:

server_id = 25
log_bin = slave-bin
relay_log = slave-relay-bin

■ slave 服务重启

参见前文:"mysql二进制安装包部署"

■ master 查看 binlog 信息

show master status;

执行之后,可获取目前主库 binlog 使用的 File 及 Position 点,类似如下:

+-------------------+----------+--------------+-------------------------------------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+-------------------+----------+--------------+-------------------------------------------------+-------------------+
| master-bin.000007 | 157 | | mysql,sys,information_schema,performance_schema | |
+-------------------+----------+--------------+-------------------------------------------------+-------------------+

■ slave 设置复制信息

根据上一步获取到的信息(File 及 Position)配置从库的复制信息,在从库上执行如下命令

CHANGE MASTER TO MASTER_HOST='10.19.238.240',MASTER_PORT=3306,MASTER_USER='repl',MASTER_PASSWORD='passwd',MASTER_LOG_FILE='master-bin.000006',MASTER_LOG_POS=1195;

■ slave 开启复制

start slave;

■■ 常用操作

■ 查看主从复制状态

show slave status \G

主要查看下面两个参数状态,只要都是yes,表示主从通信正常:

Slave_IO_Running=Yes

Slave_SQL_Running=Yes

■ 启动/停止复制

start slave;

stop slave;

■ reset master;

在master上执行,作用:

删除binlog索引文件中列出的所有binlog文件

清空binlog索引文件

创建一个新的binlog文件

清空系统变量gtid_purged和gtid_executed

在MySQL 5.7.5 及后续版本中, RESET MASTER还会会清空 mysql.gtid_executed 数据表

■ reset slave;

在slave上执行,作用:

清除slave 复制时的master binlog的位置

清空master info, relay log info

删除所有的relay log文件,并创建一个新的relay log文件。

重置复制延迟(CHANGE MASTER TO 的 MASTER_DELAY参数指定的)为0

注:

RESET SLAVE 不会改变 gtid_executed or gtid_purged.

RESET SLAVE 不会改变复制连接使用的参数,例如 master host, master port, master user, or master password

如果要重置这些连接参数,需要使用命令:

RESET SLAVE ALL

重置操作之后,就需要使用 CHANGE MASTER TO 重新指定复制连接参数。

■ 注意事项

如果出现同步失败,可以根据提示处理错误,处理完成后,需要刷新同步配置:

先停止同步

stop slave sql_thread;

stop slave;

清理掉之前的配置,防止同步已经同步了的数据

reset slave all;

然后重新连接主库,进行同步。

■ 主从节点的重启步骤

停应用 ->停数据库(先备后主)-> 启数据库(先主后备)-> 启应用

1、关闭从库,在从库操作

a.先查看当前的主从同步状态 show slave status\G; 看是否双yes

b.执行stop slave

c.停止从库服务

d.查看是否还有mysql的进程ps -ef | grep mysql

2、关闭主库,在主库操作

a.停止主库服务

b.查看是否还有mysql的进程ps -ef | grep mysql

3、启动主库,在主库操作

a.启动主库服务

b.查看mysql的进程ps -ef | grep mysql

4、启动从库,在从库操作

a.启动从库服务

b.启动复制start slave;

c.检查同步状态 show slave status\G; 是否双yes

d.查看mysql的进程ps -ef | grep mysql

【实操记录】MySQL主从配置的更多相关文章

  1. MySql主从配置实践及其优势浅谈

    MySql主从配置实践及其优势浅谈 1.增加两个MySQL,我将C:\xampp\mysql下的MYSQL复制了一份,放到D:\Mysql2\Mysql5.1 修改my.ini(linux下应该是my ...

  2. CentOS 7下的 Mysql 主从配置

    最近在玩mysql主从配置,在此记录一下 一.前言 1.安装两个虚拟机(CentOS 7).iP分别是192.168.47.131 和192.168.47.133.其中192.168.47.133作为 ...

  3. Mysql主从配置+读写分离

    Mysql主从配置+读写分离     MySQL从5.5版本开始,通过./configure进行编译配置方式已经被取消,取而代之的是cmake工具.因此,我们首先要在系统中源码编译安装cmake工具. ...

  4. mysql 主从 配置和同步管理

    首先呢,需要有两个mysql服务器.如果做测试的话可以在同一台机器上装两个mysql服务程序,注意要两个运行程序的端口不能一样.我用的是一个是默认的3306,从服务器用的是3307端口. 在主服务创建 ...

  5. mysql主从配置和galera集群

    mariadb主从 主从多用于网站架构,因为主从的同步机制是异步的,数据的同步有一定延迟,也就是说有可能会造成数据的丢失,但是性能比较好,因此网站大多数用的是主从架构的数据库,读写分离必须基于主从架构 ...

  6. mysql主从配置思路

    记录一下 原文:http://www.rjfw.com.cn/qamain/prevView.action?id=40482017200000031 mysql主从配置(清晰的思路) mysql主从配 ...

  7. centos MySQL主从配置 ntsysv chkconfig setup命令 配置MySQL 主从 子shell MySQL备份 kill命令 pid文件 discuz!论坛数据库读写分离 双主搭建 mysql.history 第二十九节课

    centos  MySQL主从配置 ntsysv   chkconfig  setup命令  配置MySQL 主从 子shell  MySQL备份  kill命令  pid文件  discuz!论坛数 ...

  8. 解读mysql主从配置及其原理分析(Master-Slave)

    在windows下配置的,后面会在Linux下配置进行测试,需要配置mysql数据库同步的朋友可以参考下. 1.在主数据库服务器为从服务器添加一个拥有权限访问主库的用户:GRANT REPLICATI ...

  9. MySQL主从配置详解

    一.mysql主从原理 1. 基本介绍 MySQL 内建的复制功能是构建大型,高性能应用程序的基础.将 MySQL 的 数亿分布到到多个系统上去,这种分步的机制,是通过将 MySQL 的某一台主机的数 ...

  10. mysql主从配置详解(图文)

    最近工作不是很忙,把以前整理的mysql数据库的主从配置过程记录一下,有不足之处,请各位多多纠正指教 #环境配置#master IP:192.168.46.137 slave IP:192.168.4 ...

随机推荐

  1. 热烈祝贺 Splashtop 荣获“最佳远程办公解决方案”奖

    ​ 2021年2月,第十四届加拿大年度"经销商选择奖"落下帷幕.Splashtop在此次评选中荣获"最佳远程办公解决方案"奖,获得该奖项的还有微软和谷歌. 一直 ...

  2. C语言:找到在文件单词中字符个数最多的单词。

    第一点:这是一个传回指针的指针函数,所以在定义的时候是char*类型的函数,传进的参数是一个文件指针,(敲重点了,一定一定一定要把文件打开了才能传这个文件指针进来!!)因为这是在你的文本文件里面进行查 ...

  3. JDK源码阅读-------自学笔记(十八)(java.lang.Enum枚举类)

    枚举类简介 如果有必要定义一组常量的时候使用 所有的枚举类型隐性地继承自 java.lang.Enum,枚举实质上还是类. 每一个枚举中的成员,就相当于枚举的一个对象,默认都是public stati ...

  4. 推荐几款卓越的 .NET 开源搜索组件

    前言 在当今日益数据化的世界中,信息的检索和搜索功能对于各种应用来说变得至关重要. 无论是电子商务网站.企业资源规划系统.还是内容管理系统,高效的搜索功能都是提升用户体验.促进业务发展的关键. 因此, ...

  5. VSCode 圈复杂度插件 CodeMetrics

    前言 圈复杂度(Cyclomatic Complexity)是一种代码复杂度的衡量标准.它可以用来衡量一个模块判定结构的复杂程度,数量上表现为独立现行路径条数,也可理解为覆盖所有的可能情况最少使用的测 ...

  6. Django——启动项目时报错mysqlclient

    报错内容如下: Watching for file changes with StatReloader Exception in thread django-main-thread: Tracebac ...

  7. go 使用 consul api filter 过滤注意点

    当你的value里面有-特殊符号的时候你应该像这样使用Service == "foo-bar"

  8. 计算巢AppFlow-如何在钉钉群实现智能答疑

    随着大模型能力越来越强大,利用大语言模型进行智能答疑已经成为了一个非常普遍和常见的场景.然而,各个产品或业务方要能够准确有效地进行答疑,仅依靠大模型的通用能力是远远不够的,这时候利用私有领域FAQ文档 ...

  9. EndNote里参考文献的期刊名显示错误怎么办?

      本文介绍EndNote文献管理软件导入文献引用时,期刊名称带有%J前缀从而不能正常显示的解决方法.   前期的文章中,我们多次介绍了文献管理软件EndNote的具体使用方法与技巧.而在使用EndN ...

  10. .NET周刊【6月第1期 2024-06-02】

    国内文章 一文带你了解.NET能做什么? https://www.cnblogs.com/Can-daydayup/p/18214473 .NET是一个免费.开源.跨平台的开发平台框架,广泛应用于桌面 ...