环境说明:

  操作系统: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单节点变更为主从节点的更多相关文章

  1. Linux 搭建Mysql主从节点复制

    Linux环境 Centos 6.6 64位 准备两台服务器,搭建一主一从,实现Mysql的读写分离和数据备份 主节点 192.168.43.10 leader 从节点 192.168.43.20 d ...

  2. MySQL Group Replication 动态添加成员节点

    前提: MySQL GR 3节点(node1.node2.node3)部署成功,模式定为多主模式,单主模式也是一样的处理. 在线修改已有GR节点配置 分别登陆node1.node2.node3,执行以 ...

  3. zookeeper有几种部署模式? zookeeper 怎么保证主从节点的状态同步?

    一.zookeeper的三种部署模式 Zookeeper 有三种部署模式分别是单机模式.伪集群模式.集群模式.这三种模式在不同的场景下使用: 单机部署:一般用来检验 Zookeeper 基础功能,熟悉 ...

  4. Mysql 实现 向上递归查找父节点并返回树结构

    需求:通过mysql 8.0以下版本实现,一个人多角色id,一个角色对应某个节点menu_id,根节点的父节点存储为NULL, 向上递归查找父节点并返回树结构. 如果只有叶子,剔除掉; 如果只有根,只 ...

  5. 用O(1)的时间复杂度删除单链表中的某个节点

    给定链表的头指针和一个结点指针,在O(1)时间删除该结点.链表结点的定义如下: struct ListNode { int m_nKey; ListNode* m_pNext; }; 函数的声明如下: ...

  6. MySQL实现树状所有子节点查询的方法

    本文实例讲述了MySQL实现树状所有子节点查询的方法.分享给大家供大家参考,具体如下: 在Oracle 中我们知道有一个 Hierarchical Queries 通过CONNECT BY 我们可以方 ...

  7. MySql 利用函数 查询所有子节点

    前提:mysql  函数  find_in_set(str,strlist), cast(value as type)   一.find_in_set(str,strlist):如果字符串str是在的 ...

  8. 《程序员代码面试指南》第二章 链表问题 将单链表每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 ...

  9. Sentinel系统监控Redis主从节点

    author:JevonWei 版权声明:原创作品 blog:http://119.23.52.191/ --- 构建Sentinel监控Redis的主节点架构 拓扑结构结构 拓扑环境 master ...

  10. redis学习五,redis集群搭建及添加主从节点

    redis集群 java架构师项目实战,高并发集群分布式,大数据高可用,视频教程 在redis3.0之前,出现了sentinel工具来监控各个Master的状态(可以看上一篇博客).如果Master异 ...

随机推荐

  1. vue 单独封装分页组件

    一.在components文件夹下新建 pagination.vue <template> <div class="page-wrap"> <ul&g ...

  2. CH334H与GL85x功能对比(过流检测与电源控制说明)

    CH334H与GL85x功能对比 CH334H是符合 USB2.0 协议规范的高性能MTT 4 端口 USB2.0  HUB 控制器芯片,高ESD特性,工业级设计,外围精简,可应用于计算机和工控机主板 ...

  3. 推荐给Amy的书单

    目录 皮囊 推荐等级 ※ ※ ※ ※ ※ 白夜行 推荐等级 ※ ※ ※ ※ ※ 人生 推荐等级 ※ ※ ※ ※ 活着 推荐等级 ※ ※ ※ ※ 许三观卖血记 推荐等级 ※ ※ ※ ※ 皮囊 推荐等级 ...

  4. 1_ES6中拓展运算符的使用

    一,拓展运算符(...) 拓展运算符(...):它会以参数序列的形式输出,更白话讲,比如数组,它可以把数组里面的东西一个一个的输出出来,例如 1 let arr1 =["你",&q ...

  5. kafka详解(02) - kafka_2.11-2.4.1安装部署

    kafka详解(02) - kafka_2.11-2.4.1安装部署 环境准备 下载安装包 官网下载地址:https://kafka.apache.org/downloads.html 2.4.1版本 ...

  6. echarts系列-带图教你调整左右位置x轴样式网格虚线刻度居中双轴Y轴滚动上下移动文字旋转改分割线颜色部分字体改色折注混合,X轴的颜色,X轴字体颜色,调整柱子颜色,调整小图标图例的大小和位置,鼠标hover时候的样式,用纵向阴影

    上面先说注意事项 1.如果使用show hidden控制图表显示隐藏,某些切换效果很奇怪,比如饼图,会从左上角开始放大,很丑,这个时候我们可以设置其宽高来解决问题,给其设置宽高后,切换的奇怪效果即可消 ...

  7. antDesign 【NG-ZORRO、Angular】日期选择框时间段nz-range-picker设置默认选择日期及限制日期可选范围

    下面的代码包含 1.只可以选择今天以后 2.只可以选择今天开始一周内 3.只能选择今天之前的 import { Component } from '@angular/core'; import dif ...

  8. 【随笔记】T507 ADC SGM58031 16BIT 4Channel 调试记录

    文章介绍 本文主要描述在 T507 Android 10 Linux 4.9 平台下,调试 SGM58031 芯片的记录,实现单芯片实时采集外部四通道的电压数值. 芯片介绍 SGM58031 是一款低 ...

  9. 【开源】libserial_parse_text:命令行解析的基础库

    借助五一假期,写了一个命令行解析的基础库,一般可用于串口命令解析.TCP命令解析等等. 具有以下几种特点: 不涉及到具体硬件, 纯软件协议,与具体硬件分离. 支持不定长命令行,逐个字符解码,可以支持不 ...

  10. 容器镜像仓库-Harbor的安装及踩坑

    之前实验室的师兄让我帮忙给服务器上装一个Harbor,花了不少时间,遂记录之,以避坑. 在学习使用Harbor之前,需要了解Docker的使用,可以看看我之前的博客:应用容器引擎-Docker.Doc ...