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

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

环境准备

在进行 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日

相关文章

  • 批量修改所有服务器的dbmail配置(推荐)

    批量修改所有服务器的dbmail配置是一项重要的操作,可以节省服务器管理员在单独修改每台服务器上配置的时间。以下是标准的markdown格式文本攻略。 批量修改所有服务器的dbmail配置(推荐) 简介 本文将介绍如何通过SSH连接批量修改所有服务器的dbmail配置。在这个过程中,将使用远程命令行和文本编辑工具来修改dbmail配置文件,确保所有服务器都能…

    database 2023年5月22日
    00
  • oracle用户权限、角色管理详解

    下面给大家分享一下关于“oracle用户权限、角色管理详解”的攻略。首先,我们需要了解三个概念:用户、权限、角色。用户是指能够访问数据库的个体,权限是指用户针对某些数据库对象所具备的操作能力,而角色就是一组权限的集合,许多用户可以共享同一个角色。 一、用户管理 对用户进行管理,需要掌握以下几个关键点: 创建用户 使用CREATE USER语句可以创建用户。例…

    database 2023年5月21日
    00
  • MySQL锁监控

    MySQL锁监控是指通过监控MySQL数据库中的锁信息,了解系统中正在发生的锁冲突情况,从而识别潜在的性能瓶颈或问题,并采取相应的措施进行优化和解决。 具体来说,MySQL锁监控主要通过以下几个方面来实现: 了解锁类型和锁范围:通过监控MySQL数据库中不同类型的锁(如共享锁、排他锁等)以及锁的范围(如行锁、表锁等),可以判断锁的具体情况和影响范围。 分析锁…

    MySQL 2023年3月10日
    00
  • mysql 常见命令及参数说明

    mysql数据库使用总结 本文主要记录一些mysql日常使用的命令,供以后查询。 1.更改root密码 mysqladmin -uroot password ‘yourpassword’ 2.远程登陆mysql服务器 mysql -uroot -p -h192.168.137.10 -P3306 3.查询数据库 show databases; 4.进入某个数…

    MySQL 2023年4月12日
    00
  • Redis集群介绍及测试思路

    Redis集群一般有四种方式,分别为:主从复制、哨兵模式、Cluster以及各大厂的集群方案。在3.0版本之前只支持单实例模式,3.0之后支持了集群方式。在3.0之前各大厂为了解决单实例Redis的存储瓶颈问题各自推出了自己的集群方案,其核心思想就是数据分片,主要有客户端分片、代理分片、服务端分片。这里咱们只介绍前三种方式:主从、哨兵、Cluster。 作者…

    2023年4月10日
    00
  • Redis主主复制、主从复制

    概述 Redis主从复制,也叫master-slaves配置,可以更好地读写分离; 步骤 先关防火墙; master服务器先不做任何操作; 进入slave服务器:   redis-3.2.1目录下的redis.conf是redis的配置文件,打开这个配置文件;   修改bind参数为0.0.0.0(master服务器的redis的配置文件也要修改bind参数…

    Redis 2023年4月13日
    00
  • Redis Eval Script

    简介 从Redis 2.6 版本开始,内嵌支持 Lua 环境。通过使用EVAL或EVALSHA命令可以使用 Lua 解释器来执行脚本。 EVAL和EVALSHA的使用是差不多的(下面有讲区别)。 EVAL命令 语法: EVAL script numkeys key [key …] arg [arg …] 。 script:Lua脚本 。numkeys…

    Redis 2023年4月13日
    00
  • redis安装(Linux)、启动、退出、设置密码、远程连接

    2.1 安装redis 下载redis安装包(如:redis-2.8.17.tar.gz) tar -zxvf redis-2.8.17.tar.gz cd redis-2.8.17 make sudo make install 2.2 后台启动服务端 nohup redis-server & 注:redis-server默认启动端口是6379,没有…

    Redis 2023年4月11日
    00
合作推广
合作推广
分享本页
返回顶部