MYSQL 主从添加新从库

MySQL 主从复制,不停机添加新从节点

1、主库创建账号:

show master status;
GRANT REPLICATION SLAVE ON . to ‘reader‘@‘%‘ identified by ‘readerpwd‘;
flush privilegs

2、从库配置

开启binlog

log-bin=/var/lib/mysql/mysql-bin
server-id=3 //参照原从库配置+1

3、备份主库

mysqldump -uroot -p123 --routines --single_transaction --master-data=2 --databases testdb > testdb.sql

参数说明:

  • --routines:导出存储过程和函数
  • --single_transaction:导出开始时设置事务隔离状态,并使用一致性快照开始事务,然后unlock tables;而lock-tables是锁住一张表不能写操作,直到dump完毕。
  • --master-data:默认等于1,将dump起始(change master to)binlog点和pos值写到结果中,等于2是将change master to写到结果中并注释。

4、从库创建数据库,并导入数据

将dump的数据拷贝到从库后开始导数据

mysql> grant all pricileges on *.* to testdb.* identified by ‘testdb‘;
mysql> create database testdb;
mysql> source /tmp/testdb.sql

5、查看备份文件的binlog 和 pos值

# head -25 testdb.sql
[email protected]:/tmp# head -25 /tmp/0907.sql
-- MySQL dump 10.13  Distrib 5.5.46, for debian-linux-gnu (x86_64)
--
-- Host: localhost    Database: vphotos
-- ------------------------------------------------------
-- Server version       5.5.46-0ubuntu0.14.04.2-log

/*!40101 SET @[email protected]@CHARACTER_SET_CLIENT */;
/*!40101 SET @[email protected]@CHARACTER_SET_RESULTS */;
/*!40101 SET @[email protected]@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @[email protected]@TIME_ZONE */;
/*!40103 SET TIME_ZONE=‘+00:00‘ */;
/*!40014 SET @[email protected]@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @[email protected]@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @[email protected]@SQL_MODE, SQL_MODE=‘NO_AUTO_VALUE_ON_ZERO‘ */;
/*!40111 SET @[email protected]@SQL_NOTES, SQL_NOTES=0 */;

--
-- Position to start replication or point-in-time recovery from
--

-- CHANGE MASTER TO MASTER_LOG_FILE=‘mysql-bin.003789‘, MASTER_LOG_POS=49778941;

可以看到 MASTER_LOG_FILE=‘mysql-bin.003789‘, MASTER_LOG_POS=49778941;

6、启动从库

mysql> change master to master_host=‘10.*.*.*‘,master_user=‘reader‘,master_password=‘readerpwd‘,master_log_file=‘mysql-bin.003789‘,master_log_pos=49778941;
// 验证从库状态
mysql> show slave status\G;
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 10.3.16.7
                  Master_User: slave02
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.003791
          Read_Master_Log_Pos: 99002276
               Relay_Log_File: mysqld-relay-bin.000002
                Relay_Log_Pos: 253
        Relay_Master_Log_File: mysql-bin.003789
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB:
          Replicate_Ignore_DB:
          ..................

注:看到IO和SQL线程均为YES,说明主从配置成功。

参考:

https://yq.aliyun.com/articles/38826

原文地址:http://blog.51cto.com/ljohn/2173091

时间: 2024-07-31 18:40:18

MYSQL 主从添加新从库的相关文章

MySQL 5.7主从不停机添加新从库

MySQL 主从复制,不停机添加新从节点: 1.主库创建账号: 修改主库repl密码: show master status; alter user [email protected]'%' identified by '123456'; grant replication slave,replication client on *.* to 'repl'@'%'; flush privilegs; 2.从库配置(创建从库数据库过程简略): 开启binlog [[email protected]

mysql GTID主从复制(主库在线,添加新丛库)

要求: 1.         主库上线,主库不停止服务的前提下做主从复制 2.         新添加一个丛库 操作: 1.         在主库导出数据(主库正常运行): 2.         将主库的sql文件传到丛库: 3.         丛库恢复数据库: 4.         在主服务器上,创建复制账号,赋权限 Mysql > GRANT REPLICATION SLAVE ON *.* TO 'repluser'@'3.9.8.%' IDENTIFIED BY 'replpass'

【20180507】MySQL主从在线修改从库binlog格式从STATEMENT更改成ROW格式

需求 公司内部有几十套基于传统复制的MySQL主从实例,而且binlog的格式都是STATEMENT格式.在接手这些MySQL主从实例之后就有考虑过想将binlog格式更改成ROW格式.而这次则是因为我们elk上面一个第三方工具需要解析和监听binlog信息,并且只能解析ROW格式的binlog,借此机会正好将公司部分MySQL主从复制实例的binlog格式更改成ROW格式. ROW和STATEMENT比对 row格式 优点:就是能够完全保证主从数据的一致性,不会出现因为在SQL中使用MySQL

centos下不重装php——给PHP添加新扩展库

装完php.发现需要一些新扩展库比如常见的mysqli之类的.在不重装php安装新扩展,以一个不常用的库xsl为例. 环境:centos6.8,php5.3.29 ,osx10.11.6 我的php相关目录如下:我的php安装包位置:  ~/php-5.3.29  以下简写为~/php*我的php安装位置: /usr/local/php5329 以下简写为/usr/local/php* 要安装的xsl库在 ~/php*/ext/xsl中 给xsl生成config文件   用到/usr/local

一例mysql主从数据库,从库宕机后无法启动的解决方案

启动时报错信息: Starting MySQL... ERROR! The server quit without updating PID file (/usr/local/mysql/data/qkzhi-appzookeeper-1.novalocal.pid). 2017-08-25T09:14:20.974876Z mysqld_safe mysqld from pid file        /usr/local/mysql/data/qkzhi-appzookeeper-2.nov

MySQL主从修复

MySQL主从故障修复 测试库:192.168.1.2 主192.168.1.3 从 192.168.1.4 主 4又是2的从库192.168.1.5 从 有人修改了192.168.1.2和192.168.1.3的数据库参数后,重启数据库.忘记了192.168.1.4又是192.168.1.2的从库,导致192.168.1.2和192.168.1.4的主从断掉.并且在192.168.1.2上创建了新库还原数据删除等操作,导致192.168.1.4提示错误. 模拟如下:通过从库查看主从状态:mys

Linux环境中MySQL主从同步--添加新的从库

当前我认为数据库主从有两大应用价值: 1.从库相当于主库的备份.虽然数据库的主从并不能代替/取代备份,例如错误的数据可能毁掉所有的数据库,但主从也是在一种可读的状态下保持备份的一种实现方式. 2.从库可以缓解主库的压力,能提高性能.由于从库是只读的,因此在读取查询方面,从库可以代替主库,承担一定的压力,无论是这些压力是来自用户(应用程序)还是开发.运维自己. MySQL的主从其实并不困难,而且需要做的事情也并不多,mysql官方给出的文档中对主从也做出了详细的指导.说明和解释,但总共也多少篇幅.

MySQL - 主从结构.添加新 Slave

复制从库主要步骤: ==================== 可以看到,从主库复制会有段时间锁表,这段时间会影响主库的使用.如果我们能直接从从库进行复制,就不会对主库产生影响了.但是,从从库复制要保证的是复制过程中从库上的数据不会发生变化,所以要先停掉从库. 1.停止从库: mysql> stop slave; 2.看当前从库的状态.和前面的看主库状态一样.但现在是从从库复制,所以查看从库状态:mysql> show slave status; 记下 Relay_Master_Log_file

为mysql快速添加从库,并为从库添加从库

现实情况下,mysql比较常见的是一主多从,而在主库出现问题是,需要将其从库升为主库,但事实上这种操作非常繁琐,基本上要对所有的从库进行操作. 既然如此,不妨将mysql做成ABC的结构,A为主库,B为A的从库,C是B的从库 这种情况,在A出现问题是,可以直接将B升为主库,其余下级从库将不需要任何操作. 这里记录一次此类操作,我这里的情况是,已经存在A和B,A是主,B是从 需求是,添加一个A的从库C,再添加一个C的从库D. 快速添加mysql从库(前提是都已经安装了相同版本的mysql) 首先将