MySQL单节点变更为主从节点
环境说明:
操作系统:CentOS 7.6
数据库版本:5.7
为了实验方便,同一台主机部署了两个实例,3306、3307 部署方案可参考 MySQL多实例部署:mysql多实例部署 - 太阳的阳ฅ - 博客园 (cnblogs.com)
一、主库配置
1、备份原先的配置文件,增加主从配置
vim /home/mysql/3306/my.cnf
[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/home/mysql
datadir=/home/mysql/3306/data
socket=/home/mysql/3306/mysql.sock
log-error=/home/mysql/3306/mysql.err
pid-file=/home/mysql/3306/mysql.pid slow_query_log = ON
slow_query_log_file = /home/mysql/3306/slow.log
long_query_time = 1 #character config
character_set_server=utf8mb4
symbolic-links=0 #新增配置
server-id=1
gtid_mode=ON
enforce_gtid_consistency=ON binlog_format=row
expire_logs_days=7
max_binlog_size=512M
log-bin=/home/mysql/3306/logs/mysql-bin
log_bin_index=/home/mysql/3306/logs/mysql-bin.index
log-slave-updates = ON
2、创建对应的 logs 目录
# cd /home/mysql/
# mkdir {3306,3307}/logs
# chown mysql .mysql -R *
3、重启服务
守护进程方式启动的,杀掉进程重启
./bin/mysqld_safe --defaults-file=/home/mysql/3306/my.cnf &

4、登录数据库,配置主从同步账号
# ./bin/mysql -uroot -p -S /home/mysql/3306/mysql.sock
mysql> GRANT REPLICATION SLAVE ON *.* to 'repl'@'192.168.53.%' IDENTIFIED BY 'repl';
Query OK, 0 rows affected, 1 warning (0.00 sec) mysql> SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+----------------------------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+----------------------------------------+
| mysql-bin.000001 | 448 | | | 1c68d59d-6646-11ed-963e-000c298a317b:1 |
+------------------+----------+--------------+------------------+----------------------------------------+
1 row in set (0.00 sec) mysql> SHOW VARIABLES LIKE '%gtid%';
+----------------------------------+-----------+
| Variable_name | Value |
+----------------------------------+-----------+
| binlog_gtid_simple_recovery | ON |
| enforce_gtid_consistency | ON |
| gtid_executed_compression_period | 1000 |
| gtid_mode | ON |
| gtid_next | AUTOMATIC |
| gtid_owned | |
| gtid_purged | |
| session_track_gtids | OFF |
+----------------------------------+-----------+
8 rows in set (0.01 sec)
二、从库配置
1、配置文件
vim /home/mysql/3307/my.cnf
[mysqld]
bind-address=0.0.0.0
port=3307
user=mysql
basedir=/home/mysql
datadir=/home/mysql/3307/data
socket=/home/mysql/3307/mysql.sock
log-error=/home/mysql/3307/mysql.err
pid-file=/home/mysql/3307/mysql.pid slow_query_log = ON
slow_query_log_file = /home/mysql/3307/slow.log
long_query_time = 1 #character config
character_set_server=utf8mb4
symbolic-links=0 #新增配置
server-id=151
gtid_mode = ON
enforce_gtid_consistency = ON
skip-slave-start = true
expire_logs_days = 7
max_binlog_size = 512M
read_only = ON log-bin=/home/mysql/3307/logs/mysql-bin
log_bin_index = /home/mysql/3307/logs/mysql-bin.index
relay-log = /home/mysql/3307/logs/relay-log
relay-log-index = /home/mysql/3307/logs/relay-log-index
relay-log-info-file = /home/mysql/3307/logs/relay-log.info
log-slave-updates=true
master-info-repository = table
relay-log-info-repository = table
2、参考主库重启命令,重新启动从库
3、配置slave 同步
# ./bin/mysql -uroot -p -S /home/mysql/3307/mysql.sock
mysql> CHANGE MASTER TO MASTER_HOST='192.168.53.123',MASTER_PORT=3306,MASTER_USER='repl',MASTER_PASSWORD='repl',MASSTER_AUTO_POSITION=1;
Query OK, 0 rows affected, 2 warnings (0.02 sec) mysql> start slave;
Query OK, 0 rows affected (0.00 sec) mysql> show slave status\G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.53.123
Master_User: repl
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000001
Read_Master_Log_Pos: 448
Relay_Log_File: relay-log.000002
Relay_Log_Pos: 661
Relay_Master_Log_File: mysql-bin.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 448
Relay_Log_Space: 862
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 1
Master_UUID: 1c68d59d-6646-11ed-963e-000c298a317b
Master_Info_File: mysql.slave_master_info
SQL_Delay: 0
SQL_Remaining_Delay: NULL
Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates
Master_Retry_Count: 86400
Master_Bind:
Last_IO_Error_Timestamp:
Last_SQL_Error_Timestamp:
Master_SSL_Crl:
Master_SSL_Crlpath:
Retrieved_Gtid_Set: 1c68d59d-6646-11ed-963e-000c298a317b:1
Executed_Gtid_Set: 1c68d59d-6646-11ed-963e-000c298a317b:1
Auto_Position: 1
Replicate_Rewrite_DB:
Channel_Name:
Master_TLS_Version:
1 row in set (0.00 sec) ERROR:
No query specified
配置完成
PS:如果出现sql 线程或者IO线程NO,可尝试将主库暂时锁表,说有数据备份出来导入从库,解锁再观察,注意先 stop slave;
mysqldump -S /home/mysql/3306/mysql.sock -u root -p --lock-all-tables --set-gtid-purged=OFF --master-data=2 --flush-logs --all-databases --triggers --routines --events > full.sql
./bin/mysql -uroot -p -S /home/mysql/3307/mysql.sock < full.sql
MySQL单节点变更为主从节点的更多相关文章
- Linux 搭建Mysql主从节点复制
Linux环境 Centos 6.6 64位 准备两台服务器,搭建一主一从,实现Mysql的读写分离和数据备份 主节点 192.168.43.10 leader 从节点 192.168.43.20 d ...
- MySQL Group Replication 动态添加成员节点
前提: MySQL GR 3节点(node1.node2.node3)部署成功,模式定为多主模式,单主模式也是一样的处理. 在线修改已有GR节点配置 分别登陆node1.node2.node3,执行以 ...
- zookeeper有几种部署模式? zookeeper 怎么保证主从节点的状态同步?
一.zookeeper的三种部署模式 Zookeeper 有三种部署模式分别是单机模式.伪集群模式.集群模式.这三种模式在不同的场景下使用: 单机部署:一般用来检验 Zookeeper 基础功能,熟悉 ...
- Mysql 实现 向上递归查找父节点并返回树结构
需求:通过mysql 8.0以下版本实现,一个人多角色id,一个角色对应某个节点menu_id,根节点的父节点存储为NULL, 向上递归查找父节点并返回树结构. 如果只有叶子,剔除掉; 如果只有根,只 ...
- 用O(1)的时间复杂度删除单链表中的某个节点
给定链表的头指针和一个结点指针,在O(1)时间删除该结点.链表结点的定义如下: struct ListNode { int m_nKey; ListNode* m_pNext; }; 函数的声明如下: ...
- MySQL实现树状所有子节点查询的方法
本文实例讲述了MySQL实现树状所有子节点查询的方法.分享给大家供大家参考,具体如下: 在Oracle 中我们知道有一个 Hierarchical Queries 通过CONNECT BY 我们可以方 ...
- MySql 利用函数 查询所有子节点
前提:mysql 函数 find_in_set(str,strlist), cast(value as type) 一.find_in_set(str,strlist):如果字符串str是在的 ...
- 《程序员代码面试指南》第二章 链表问题 将单链表每K个节点之间逆序
样例 链表1-2-3-4-5-6-7-8-9-10 K=3 ,结果 3-2-1-6-5-4-9-8-7-10 java代码 /** * @Description:将单链表每K个节点之间逆序 * @Au ...
- Sentinel系统监控Redis主从节点
author:JevonWei 版权声明:原创作品 blog:http://119.23.52.191/ --- 构建Sentinel监控Redis的主节点架构 拓扑结构结构 拓扑环境 master ...
- redis学习五,redis集群搭建及添加主从节点
redis集群 java架构师项目实战,高并发集群分布式,大数据高可用,视频教程 在redis3.0之前,出现了sentinel工具来监控各个Master的状态(可以看上一篇博客).如果Master异 ...
随机推荐
- vue3+ts 全局事件总线mitt
Mitt 在vue3中 $ on,$off 和 $once 实例方法已被移除,组件实例不再实现事件触发接口,因此大家熟悉的EventBus便无法使用了.然而我们习惯了使用EventBus,对于这种情况 ...
- WCH网络授时芯片CH9126操作指导
目前CH9126推荐在Win7操作系统的电脑上执行,暂不推荐在与Win10系统的电脑进行通讯. 一.重要引脚说明 设置及状态相关引脚: 引脚1:RSETE-一个控制CH9126工号的引脚,直接接18K ...
- [编程基础] Python中的绝对导入与相对导入
如果您从事的Python项目有多个文件,那么您以前可能不得不使用import语句.即使对于拥有多个项目的Python重度使用者(比如我),import也可能会造成混淆!您可能正在阅读本文,因为您想对P ...
- java进阶篇——Stream流编程
Stream流 函数式接口 1.消费型接口--Consumer @FunctionalInterface public interface Consumer<T> { /** * 对给定的 ...
- [C++标准模板库:自修教程与参考手册]关于deque
Deque的基本概念 deque和vector很相似,也提供随机存取的能力,将元素都动态地存储在一个数组中,最大的区别就是:deque的头和尾都是开放的,非常方便在头尾两端进行一些操作.(重点在于:d ...
- 通过Canal将云上MySQL数据同步到华为云ES(CSS)中
背景: A部门想将mysql中多张表join成一个sql查询语句,然后将结果同步到es中供搜索使用 环境信息: 源端mysql在阿里云上,有公网ip 目标端es在华为云上,三节点 操作步骤与目的: 配 ...
- strapi系列--如何自定义非界面化的接口,定制化自己的业务逻辑
为什么要进行后端定制呢? 在实际开发过程中,项目中有些需求是不需要创建界面化接口的,需要我们定制化自己的业务逻辑,那么我们该如何处理这个需求呢?本文以图文并茂的形式,定制一个我们自己的业务逻辑接口. ...
- forEach(遍历) VS map(映射) VS reduce(聚合)---学习笔记
- 超级容易理解的Three.js中的物体rotation
假设模特头朝着自己现在躺在地上 那么改变Y就是等于躺着转圈圈 mesh.rotation.set( 0,Math.PI/1.2,0); 改变X就意味着,这个是本来模特头朝着自己躺着,然后站起来了,后脑 ...
- margin-left:auto的妙用
问题描述 如上图所示,我们需要将上述三个标签右对齐,就像上图是要达到的效果,一般采用的方法是对每个标签设置margin-left这样就需要设置三个值. 当文字变长或者变成英文的时候又需要重新设置,否则 ...