通过两种方式增加从库——不停止mysql服务

本文将介绍通过两种方式增加MySql从库,而不需要停止MySql主服务。两种方式分别为基于GTID的复制和基于数据库备份的复制。

1. 基于GTID的复制

GTID是MySQL从5.6版本中引入的特性,用于在主从复制环境中解决多主复制冲突的问题。在增加从库时,使用GTID能够避免重复数据问题。

1.1 步骤一:启用GTID

在MySQL主服务器上,编辑my.cnf文件,打开GTID模式:

[mysqld]
server-id=1
log-bin=master
binlog-format=ROW
enforce-gtid-consistency=ON

在从服务器的my.cnf文件中添加如下记录

[mysqld]
server-id=102
log-bin=slave
relay-log=replay
binlog-format=ROW
gtid_mode=ON
enforce-gtid-consistency=ON

1.2 步骤二:转储主服务器状态

通过在主服务器上使用mysqldump 转储数据,然后恢复到从服务器

$ mysqldump --master-data=2 --single-transaction --routines --triggers --all-databases --triggers --events --add-drop-database > dumping.sql

转储期间,--master-data=2 将在转储日志开头加入 CHANGE MASTER 语句,而且将包含 GTID_PURGED。

1.3 步骤三:运行 CHANGE MASTER 命令

在从服务器上,运行如下语句,建立Slave主从关系:

$ mysql -u root -p
mysql> change master to 
master_host='192.168.100.101',
master_user='slaveuser',
master_password='slavepass',
master_port=3306,
master_auto_position=1;

然后启动该从服务器作为Slave:

mysql> start slave;

1.4 步骤四:验证复制是否成功

可以使用如下命令在主从服务器上验证:

mysql> show master status\G

在主服务器上这个命令可能会输出如下信息:

File: mysql-bin.000001
Position: 107
Binlog_Do_DB: mydb
Binlog_Ignore_DB: mysql
Executed_Gtid_Set: 0c5e1ca8-c195-11e7-a99b-005056a205be:1-3

在从服务器上,可以使用如下命令验证复制是否成功:

mysql> show slave status\G

可以查看输出中的Slave_IO_Running 和 Slave_SQL_Running 状态是否正常

2. 基于数据库备份的复制

还可以通过数据库备份增加从服务器。优点是操作简单,缺点是需要从主服务器上停止备份。

2.1 步骤一:停止主服务器

停止MySql主机服务,使用mysqldump命令对主数据库进行备份

$ mysqldump -u root -p mydb > mydbdump.sql

2.2 步骤二:将备份文件拷贝到从服务器

使用SCP或其他方式将备份文件从主服务器拷贝到从服务器上。

$ scp mydbdump.sql slave-server:/home/user

2.3 步骤三:恢复数据

在从服务器上,使用MySQL命令行客户端来恢复备份数据:

$ mysql -u root -p < mydbdump.sql

2.4 步骤四:启动Slave MySQL服务器

恢复完成后,在从服务器上启动Slave MySQL服务器:

$ mysql -u root -p
mysql> start slave;

2.5 步骤五:验证复制是否成功

可以使用如下命令在主从服务器上验证:

mysql> show master status\G

在主服务器上这个命令可能会输出如下信息:

File: mysql-bin.000001
Position: 107
Binlog_Do_DB: mydb
Binlog_Ignore_DB: mysql
Executed_Gtid_Set: 0c5e1ca8-c195-11e7-a99b-005056a205be:1-3

在从服务器上,可以使用如下命令验证复制是否成功:

mysql> show slave status\G

可以查看输出中的Slave_IO_Running 和 Slave_SQL_Running 状态是否正常

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:通过两种方式增加从库——不停止mysql服务 - Python技术站

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

相关文章

  • Derby 和 MongoDB 的区别

    Derby和MongoDB是两个不同类型的数据库,具有不同的特性和用途。接下来,我将详细讲解两者的区别。 Derby 什么是Derby Derby是一个基于Java平台的嵌入式关系型数据库管理系统。它是以纯Java代码实现的,并且可以嵌入到应用程序中。Derby是Apache软件基金会的一个开源项目。 Derby的特点 嵌入式数据库:Derby是一个面向嵌入…

    database 2023年3月27日
    00
  • 如何使用Python连接到MongoDB数据库?

    以下是如何使用Python连接到MongoDB数据库的完整使用攻略。 使用MongoDB数据库的前提条件 在使用Python连接MongoDB数据库之前,需要确保已经安装MongoDB数据库,并经启动MongoDB服务器,同时需要安装Python的MongoDB驱动pymongo。 步骤1:导入模块 在Python中使用pymongo模块连接MongoDB数…

    python 2023年5月12日
    00
  • 关于CentOS 8 搭建MongoDB4.4分片集群的问题

    本文将详细讲解如何在 CentOS 8 上搭建 MongoDB 4.4 分片集群。 环境准备 三台 CentOS 8 服务器,最好是在同一个局域网内 所需软件:MongoDB 4.4 安装 MongoDB 在三台服务器上分别执行如下命令安装 MongoDB: sudo yum install -y mongodb-org 配置 MongoDB 在每个节点上创…

    database 2023年5月22日
    00
  • 关于SQL Update的四种常见写法

    下面是关于SQL Update的四种常见写法的详细攻略: 一、基本写法 SQL语句的基本写法如下: UPDATE table_name SET column_name1 = value1, column_name2 = value2 WHERE condition; 其中: table_name为要更新的表名; column_name为要更新的列名; val…

    database 2023年5月21日
    00
  • MySQL出现Waiting for table metadata lock异常的解决方法

    下面就是MySQL出现Waiting for table metadata lock异常的解决方法的完整攻略。 什么是Waiting for table metadata lock异常? 在MySQL数据库中,metadata(元数据)是描述数据库对象(如表、索引等)的数据,metadata lock就是锁定这些数据库对象的元数据信息,以保证并发访问时不出现…

    database 2023年5月21日
    00
  • 如何通过pycharm实现对数据库的查询等操作(非多步操作)

    下面是详细讲解“如何通过PyCharm实现对数据库的查询等操作(非多步操作)”的完整攻略: 1. 安装数据库驱动 在PyCharm里操作数据库,需要安装数据库的驱动程序。这里以MySQL为例,安装MySQL驱动的命令: !pip install mysql-connector-python 2. 连接数据库 连接数据库需要指定数据库的地址、用户名、密码、端口…

    database 2023年5月22日
    00
  • JavaBean(EJB) 3.0 全新体验

    JavaBean(EJB) 3.0 全新体验 JavaBean(EJB) 3.0 是Java EE的一种规范,提供了基于组件的编程模型,可以使开发者快速、高效地构建分布式、可维护和安全的应用程序。下面我们介绍如何使用JavaBean(EJB) 3.0构建应用程序。 步骤一:定义JavaBean(EJB) JavaBean(EJB) 是一个Java类,用于封装…

    database 2023年5月21日
    00
  • JDBC连接Mysql的5种方式实例总结

    首先我们需要理解什么是JDBC连接Mysql。 JDBC是Java Database Connectivity的缩写,它是Java中连接数据库的标准API,可以通过JDBC来访问各种各样的关系型数据库。而Mysql是一种关系型数据库,是目前开发中常用的一种数据库之一。 下面将分别讲解五种JDBC连接Mysql的方式: 1.使用JDBC Driver Mana…

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