环境说明:

  操作系统: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. python 之将xmind转为excel用例文件

    1.xmind文件模板如下所示(最后一个子级为预置条件) 2.excel用例模板 3.获取xmind文件数据并转成字典形式 from xmindparser import xmind_to_dict ...

  2. Service层和Dao层的一些自我理解(╥╯^╰╥)(╥╯^╰╥)(学了这么久,这玩意儿似懂非懂的)

    学习java已经有很长时间了,但由于是在学校学的,基础不怎么扎实. 这几个月系统的学习,弥补了很多的缺陷,虽然大多数时间都在弄算法(咳咳),我前面的博客有写 如果有认真看过我代码的朋友会发现,我其实英 ...

  3. [python]《Python编程快速上手:让繁琐工作自动化》学习笔记2

    1. 读写文件笔记(第8章)(代码下载) 1.1 文件与文件路径 通过import os调用os模块操作目录,常用函数如下: 函数 用途 os.getcwd() 取得当前工作路径 os.chdir() ...

  4. [python] 基于blind-watermark库添加图片盲水印

    blind-watermark是一个能够给图片添加/解析基于频域的数字盲水印的Python库.图像水印image watermark是指在图片里添加文本或图形,以标记图片的来源.但是图像水印会破坏原图 ...

  5. C语言常用知识总结

    在 C 语言中,常量是一种固定值的标识符,它的值在程序执行期间不会改变. C 语言中有几种不同类型的常量: 字符常量:用单引号括起来的单个字符,例如 'A'.'b'.'1' 等. 字符串常量:用双引号 ...

  6. Nodejs报错记录

    ◉ digital envelope routines::unsupported D:\workspace\vuedemo> npm run dev ... error:0308010C:dig ...

  7. Git Rebase和Merge的用法

    title: Git Rebase和Merge的用法 categories: 后端 tags: - Git Rebase和Merge是什么? merge和rebase的作用都是合并两个分支,其区别在于 ...

  8. 使用SQL4Automation让CodeSYS连接数据库

      摘要:本文旨在说明面向CodeSYS的数据库连接方案SQL4Automation的使用方法. 1.SQL4Automation简介 1.1.什么是SQL4Automation   SQL4Auto ...

  9. 炫酷科技感黑客感瀑布流html代码

    效果如下 代码如下 <!DOCTYPE html><html> <head> <meta http-equiv="Content-Type" ...

  10. io流概述-一切皆为字节

    io流概述 什么是io 生活中,你肯定经历过这样的场景.当你编辑一个文本文件,忘记了ctrl+s,可能文件就白白编辑了当你电脑上插入一个U盘,可以把一个视频,拷贝到你的电脑硬盘里.那么数据都是在哪些设 ...