linux系统下实现mysql热备份详细步骤(mysql主从复制)

yizhihongxing

下面是详细的步骤和示例说明,具体流程如下:

环境准备

在进行 MySQL 主从复制之前,需要做一些准备:

  1. 确保主库和从库都安装了 MySQL 数据库,并且版本一致
  2. 确保主库和从库都能够相互访问,即主库能够访问从库,从库能够访问主库
  3. 确保主库和从库都有相同的字符集和排序规则

主库配置

  1. 在主库上创建一个账号,并为该账号赋予 REPLICATION SLAVE 的权限
CREATE USER 'repl'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
  1. 修改主库的配置文件 my.cnf,在 [mysqld] 段中添加以下内容:
log-bin=mysql-bin    # 开启二进制日志
server-id=1          # 服务器唯一标识,主从必须不同
  1. 重启 MySQL 服务以使更改生效

从库配置

  1. 修改从库的配置文件 my.cnf,在 [mysqld] 段中添加以下内容:
server-id=2          # 服务器唯一标识,主从必须不同
  1. 在从库上执行以下命令,设置主库的地址、账号和密码,并开始复制过程
CHANGE MASTER TO
    MASTER_HOST='<主库IP或主机名>',
    MASTER_USER='repl',
    MASTER_PASSWORD='password',
    MASTER_LOG_FILE='<主库上当前的二进制日志文件>',
    MASTER_LOG_POS=<主库上当前的二进制日志偏移量>;

START SLAVE;

其中,<主库IP或主机名>、<主库上当前的二进制日志文件> 和 <主库上当前的二进制日志偏移量> 需要从主库上获取,可以通过以下命令获取:

SHOW MASTER STATUS;

示例说明

示例一:主库和从库在同一台机器上

  1. 在本地主机上创建两个 MySQL 实例,一个作为主库,一个作为从库
$ mysql_install_db --datadir=./mysql1/data/
$ mysql_install_db --datadir=./mysql2/data/
$ mysqld_safe --defaults-file=./my.cnf --datadir=./mysql1/data/ &
$ mysqld_safe --defaults-file=./my.cnf --datadir=./mysql2/data/ &

其中,my.cnf 的内容为:

[mysqld]
log-bin=mysql-bin
server-id=1
  1. 在主库上创建账号和数据库,并往数据库中插入一些数据
CREATE DATABASE test;
CREATE TABLE test.t (id INT);
INSERT INTO test.t VALUES (1), (2), (3);
  1. 在从库上进行主从复制的配置,并开始复制
CHANGE MASTER TO
    MASTER_HOST='127.0.0.1',
    MASTER_USER='repl',
    MASTER_PASSWORD='password',
    MASTER_LOG_FILE='mysql-bin.000001',
    MASTER_LOG_POS=154;

START SLAVE;

其中,MASTER_LOG_FILE 和 MASTER_LOG_POS 的值可以通过 SHOW MASTER STATUS 命令获取。

  1. 在主库上修改数据
INSERT INTO test.t VALUES (4);
  1. 在从库上查看数据是否同步
SELECT * FROM test.t;

可以看到,从库中的数据已经更新为 1、2、3、4。

示例二:主库和从库在不同的机器上

  1. 在主机 A 上创建 MySQL 实例作为主库,并在主机 B 上创建 MySQL 实例作为从库

  2. 在主库上创建账号和数据库,并插入一些数据

CREATE DATABASE test;
CREATE TABLE test.t (id INT);
INSERT INTO test.t VALUES (1), (2), (3);
  1. 修改主库的 my.cnf 文件,添加以下内容:
bind-address=<主机A的IP地址>
  1. 在从库上进行主从复制的配置,并开始复制
CHANGE MASTER TO
    MASTER_HOST='<主机A的IP地址>',
    MASTER_USER='repl',
    MASTER_PASSWORD='password',
    MASTER_LOG_FILE='mysql-bin.000001',
    MASTER_LOG_POS=154;

START SLAVE;

其中,MASTER_LOG_FILE 和 MASTER_LOG_POS 的值可以通过 SHOW MASTER STATUS 命令获取。

  1. 在主库上修改数据
INSERT INTO test.t VALUES (4);
  1. 在从库上查看数据是否同步
SELECT * FROM test.t;

可以看到,从库中的数据已经更新为 1、2、3、4。

注意:在从库上设置 MASTER_HOST 的时候,要使用主库机器的 IP 地址。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:linux系统下实现mysql热备份详细步骤(mysql主从复制) - Python技术站

(0)
上一篇 2023年5月21日
下一篇 2023年5月21日

相关文章

  • Oracle WebLogic Server 12.2.1.2安装部署教程

    Oracle WebLogic Server 12.2.1.2 安装部署教程 本文将介绍 Oracle WebLogic Server 12.2.1.2 的安装和部署过程。 准备工作 在开始安装前,您需要进行以下准备工作: 下载安装程序:从官方网站下载 WebLogic Server 12.2.1.2 的安装程序,或者从 Oracle 官方 Docker H…

    database 2023年5月22日
    00
  • Linux内核启动参数详解

    Linux内核启动参数详解 作为Linux操作系统最为基础的核心,内核启动参数是我们深入系统了解与优化的必要途径。本篇文章将对Linux内核启动参数进行详细分析,力图让读者对内核启动参数有更全面的了解。 什么是内核启动参数 内核启动参数是在Linux操作系统启动时由bootloader(例如Grub)传递给内核的一组参数。这些参数用于控制内核启动过程中的各种…

    database 2023年5月22日
    00
  • navcat无法远程连接mysql数据库解决办法

    navcat无法远程连接mysql数据库,一般都是因为本地ip没有访问权限,服务器上执行下面指令即可解决 mysql -u root -p GRANT ALL PRIVILEGES ON *.* TO ‘mysql数据库用户名’@’本地ip’ IDENTIFIED BY ‘mysql数据库密码’ WITH GRANT OPTION; flush privil…

    MySQL 2023年4月13日
    00
  • 关于单台MongoDB实例开启Oplog的过程详解

    关于单台MongoDB实例开启Oplog的过程详解 什么是Oplog? Oplog,全称Operation Log,是MongoDB的一种特殊的集合,用于记录数据库的操作,类似于MySQL的Binlog。开启Oplog可以实现MongoDB的主从复制以及分片集群。 如何开启Oplog? 开启Oplog的步骤分为三个: 第一步:修改MongoDB的配置文件 在…

    database 2023年5月22日
    00
  • SpringBoot怎么整合Redis实现序列化存储Java对象

    今天小编给大家分享一下SpringBoot怎么整合Redis实现序列化存储Java对象的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。 一、背景 1、思考 通过我们前面的学习,我们已经可以往 Redis 中存入字符串,那么我们要往 Redis 中…

    2023年4月10日
    00
  • 如何使用Python在MySQL中使用子查询?

    在MySQL中,子查询是一种嵌套在其他查询中的查询。子查询可以用于检索满足特定条件的数据,然后将这些数据用于主查询中。在Python中,可以使用MySQL连接来执行子查询。以下是在Python中使用子查询的完整攻略,包括子查询的基本语法、使用子查询的示例以及如何在Python中使用子查询。 子查询的基本语法 子查询的基本语法如下: SELECT column…

    python 2023年5月12日
    00
  • SQL Server的触发器详解

    SQL Server的触发器详解 什么是触发器 在数据库中,触发器是与表相关联的特殊存储过程,它在表上的某些事件发生时自动执行。触发器在向表插入、更新或删除数据时扮演着极为重要的角色。SQL Server 等关系型数据库管理系统 (RDBMS) 提供了触发器功能来实现数据约束和数据同步等多个方面的需求。 触发器通常在以下情况下使用:- 针对表执行的约束和规则…

    database 2023年5月21日
    00
  • Linux下Redis安装配置教程

    以下是“Linux下Redis安装配置教程”的完整攻略,包括安装、配置和两个示例说明。 Linux下Redis安装配置教程 1. 安装步骤 1.1 下载Redis 官网下载地址:https://redis.io/download 可以使用以下命令下载: $ wget http://download.redis.io/releases/redis-6.2.2.…

    database 2023年5月22日
    00
合作推广
合作推广
分享本页
返回顶部