首页 > 数据库 >mysql主从复制

mysql主从复制

时间:2023-07-16 14:11:07浏览次数:43  
标签:主从复制 slave log 数据库 mysql 服务器 日志

1.MySQL主从复制介绍

   主从复制实现的原理:(同步二进制日志文件)
   主服务器开启二进制日志功能,当mysql进行操作同时生成一条操作事件日志,
   并写入二进制日志文件中,从服务器通过同步二进制日志文件,并在从服务器
   重新执行该事件,从而实现主从复制。

2.主从服务器配置
   架构:
   前端服务:负载均衡
   后端数据库:主从复制+读写分离

   主从服务器配置:
(准备)
   master:192.168.17.129
   slave: 192.168.17.128
   slave: 192.168.17.130(1)主服务器配置(master配置):

   vi /etc/my.cnf
   ① 在[mysqld]下添加如下字段:
server-id=1 //数据库ID号,为1时表示为Master,其中master_id必须为1到232间正整数
log-bin=mysql-bin //启用二进制日志
binlog-do-db=wordpress //需要同步的二进制数据库名
binlog-ignore-db=mysql //不同步的二进制数据库名,如果不设置可以将其注释掉
log-bin=/var/log/mysqlbin/bin_log //设定生成的 log 文件名
log-slave-updates //把更新的记录写到二进制文件中
expire_logs_days = 8 //日志文件过期天数,系统默认是0,表示不过期,这里设置8天前的binlog会被删除,但如果以后需要恢复,请记得备份,或者改大
   ② 创建一个目录用来保存 binlog 日志
        mkdir /var/log/mysqlbin/
        chown -R mysql:mysql /var/log/mysqlbin/
   ③ 授权用户可以通过从库来复制
        mysql> grant replication slave on *.* to [email protected] identified by 'changeme'
   ④ 重启 mysql 服务
       service mysqld restart
       注意:在配置文件中不要使用 skip-networking 参数,否则从服务器无法与主服务器进行连
       接并复制数据。

(2)从服务器配置(slave配置,两台一样配置)
     vi /etc/my.cnf
     ① 在[mysqld]下添加如下字段:
server-id=2 // 如果需要增加 Slave 库则此 id 往后顺延
master-host=192.168.17.129 //主库 host
master-user=ubinlog //在主数据库服务器中建立的用于该从服务器备份使用的用户
master-password=changeme
master-port=3306
master-connect-retry=60 //如果发现主服务器断线,重新连接的时间差
replicate-ignore-db=mysql //不需要备份的数据库
replicate-do-db=wordpress //需要备份的数据库
     ② 重启 Mysql 服务
         service mysqld restart
     ③ 在从服务器上查看状态
mysql>slave start;
mysql>show slave status\G;
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Slave_IO_Running:连接到主库,并读取主库的日志到本地,生成本地日志文件
Slave_SQL_Running:读取本地日志文件,并执行日志里的 SQL 命令

3.主从配置后测试是否生效
   最后主库上面新建数据库测试,注意:最好先在配置文件里面添加要同步的数据库名称,然后在去建立数据库.
   如果主服务器已经存在应用数据,则在进行主从复制时,需要做以下处理:
     (1)主数据库进行锁表操作,不让数据再进行写入动作
     mysql> FLUSH TABLES WITH READ LOCK;
     (2)查看主数据库状态
     mysql> show master status;
     (3)记录下 FILE 及 Position 的值。
     将主服务器的数据文件(/var/lib/mysql/目录除了 mysql 等默认目录)复制到从服务器,
     建议通过 tar 归档压缩后再传到从服务器解压。
     (4)取消主数据库锁定
     mysql> UNLOCK TABLES;

     mysql> grant replication slave on *.* to [email protected] identified by 'changeme';

标签:主从复制,slave,log,数据库,mysql,服务器,日志
From: https://www.cnblogs.com/huchao12/p/17557813.html

相关文章

  • docker yum mysql
    Docker容器中使用Yum安装MySQL概述Docker是一个流行的容器化平台,它允许我们在独立、可移植的容器中运行应用程序。Yum(YellowdogUpdaterModified)是RedHatLinux和CentOS操作系统中的一个软件包管理器,它可以方便地用于安装、更新和删除软件包。本文将介绍如何在Docker容器中使用......
  • MySQL8 Bug 记录
    配置相关MySQL8安全插件更新导致的兼容性问题mysql8提供了新的功能,这些功能会影响用户创建或更新用户密码,以及使用那些仅支持mysql5登陆方式的客户端工具PasswordValidationOptionsandVariablesAuthenticationPlugins密码验证组件该组件要求用户必须设置符合一定......
  • JAVA面试题----MYSQL
     MYSQL。          mysql使用的引擎是InnoDB,它有四大特性:1插入缓冲2二次写3自适应hash索引(ahi),就不用走B+树了;4预读。使用InnoDB因为它是事务安全的存储引擎,它具备提交,回滚以及崩溃恢复的功能以及保护用户数据。MYSQL的索引分类:1主键索引2,唯一索引3.复合索......
  • 深入理解MySQL数据库索引优化
    在现代应用程序中,数据库是至关重要的组成部分。MySQL作为一种常用的关系型数据库管理系统,索引是其性能优化的关键。本文将深入介绍MySQL数据库索引的概念、类型以及优化技巧,帮助读者更好地理解和利用索引提升数据库查询性能。1.什么是索引?索引是一种数据结构,用于快速定位和访问数......
  • 0.mysql基础sql
    常用的数据库sql语句,数据库相关的技术和理论是成体系的,从基础使用到数据库原理,到性能优化,海量数据处理,但不同的技术角色所需掌握的深度是不同的:如果你是一位普通系统软件开发人员掌握基本sql操作、数据库索引、存储结构等也够用如果你是一位高并发系统的架构设计与开发者,那海量......
  • 腾讯技术官编写的594页MySQL优化手册,竟意外冲上GitHub调优热榜
    前言:当下互联网时代,MySQL受热捧的程度不容置疑,位列全球最流行的开源数据库也当之无愧,它广泛应用的因由不仅是产品本身的优势,更重要的是有无数社区技术爱好者为其默默耕耘。近几年MySQL发展迅速,各分支在性能与架构方面优化都有所突破与发展;与此同时,互联网应用业务也更加复杂,更具有......
  • mysql-8.0.23-winx64_解压版本的配置和使用
    1、下载我给大家提供的压缩包链接:https://pan.baidu.com/s/1m0WQfU3SoKDwgIwcxeSujw提取码:xv9u2、文件解压在你的英文目录下,最好和我保持一致哈 3、浏览下原始文件列表 4、在mysql的解压目录下创建my.ini文件且编辑,我已经给大家写好了,只要以上路径和我保持一致,不用再修改......
  • mysql 数据库 1130 error
    mysql-uroot-p接下来输入刚刚创建的密码  成功进入之后需要输入以下命令usemysql;  //切换数据库updateusersethost='%'whereuser='root';  输入完成之后 selectHost,Userfromuser;查看以下修改结果 +-----------+---------------+|Host|User......
  • mysql boolean 转数字
    MySQLboolean转数字的实现方法引言在MySQL中,布尔类型的数据存储为1或0,分别代表true和false。当我们需要将布尔类型的数据转换为数字时,可以使用一些简单的方法来实现。本文将介绍一个实现“MySQLboolean转数字”的方法,并提供详细的步骤和代码示例。步骤下表展示了将MySQL布......
  • mysql boolean 和tinint
    MySQL中的Boolean和TINYINTMySQL是一种常用的关系型数据库管理系统,它支持多种数据类型以满足不同的需求。在MySQL中,Boolean和TINYINT是两种常见的数据类型,用于存储布尔值和小整数。本文将介绍这两种数据类型的特点,以及在MySQL中如何使用它们。Boolean数据类型Boolean是一种用于......