MySQL主从复制配置

振鹭2年前技术文章1034

一、master服务器配置

1)用户添加及授权

在master 服务器授权一个账户,拥有slave权限

1
2
mysql> GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'repl'@'备库ip' IDENTIFIED BY '备库密码';
mysql> FLUSH PRIVILEGES;

2)my.cnf配置修改

修改mysql配置文件,my.ini (windows)或 my.cnf(Linux)找到[mysqld] 标记,下方添加










server-id=1
log-bin=master-bin
binlog-format=ROW
# 以下两个为可选选项,如果要保证数据不丢失最好在清理binlog之前把要清理的日志备份,日志文件的大小根据磁盘的性能做适当的调整
expire_logs_days = 7 // binlog过期清理时间
max_binlog_size = 1G // binlog每个日志文件大小
 
max_connections = 1000
character-set-server = utf8mb4 // 配置字符集
collation-server = utf8mb4_unicode_ci // 配置字符集
// 配置不同步的库
binlog-ignore-db = mysql
binlog-ignore-db = sys
binlog-ignore-db = information_schema
binlog-ignore-db = performance_schema

3) 重启master 的mysql服务


systemctl restart mysqld

二、备库配置

在另一个mysql上配置从服务器

1) 备库my.cnf修改

找到my.ini (windows) 或 my.cnf (linux),找到[mysqld]标记,更改如下配置


[mysqld]
max_connections = 1000
log_bin = slave-bin
server_id = 2
relay_log = slave-relay-bin
log_slave_updates = 1
read_only = 1
#以下两个为可选选项,如果要保证数据不丢失最好在清理binlog之前把要清理的日志备份,日志文件的大小根据磁盘的性能做适当的调整
expire_logs_days = 7 //binlog过期清理时间
max_binlog_size = 100m //binlog每个日志文件大小
 
replicate_ignore_db=information_schema
replicate_ignore_db=performance_schema
replicate_ignore_db=mysql
replicate_ignore_db=sys

重启mysql使配置生效


systemctl restart mysqld

三、开启复制

1)查看主库binlog信息

登陆主库执行


mysql> show master status;
+-------------------+----------+--------------+------------------+-------------------+
| File              | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+-------------------+----------+--------------+------------------+-------------------+
| master-bin.000001 |      154 |              |                  |                   |
+-------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

执行之后可以获取目前主库binlog使用的文件及pos点  

2)在从库上设置复制信息

根据上一步获取到的信息(Position, File)配置从库的复制信息,在从库上执行如下命令


CHANGE MASTER TO MASTER_HOST='主库ip',MASTER_USER='repl',MASTER_PASSWORD='主库密码',MASTER_LOG_FILE='master-bin.000001',MASTER_LOG_POS=154;

3)在从库上开启复制

从库复制信息配置完成后执行命令开启复制:
mysql> start slave;

4)查看复制状态

启动之后如果不报错即可执行如下命令查看复制的状态:
show slave status \G;

主要查看下面两个参数状态,只要都是yes,表示主从通信正常。
Slave_IO_Running=Yes
Slave_SQL_Running=Yes
如果均为yes则正常,否则需根据last_error信息进行调试


相关文章

Oracle上云找云掣

背景介绍:随着公有云技术成熟、稳定,越来被大中企业接受。自建IDC机房大成本投入终被云的高效方便稳定所替代。企业基于0racle核心的业务系统势必上云,企业面临0racle如何上云,上云后如何保障数据...

Redis 持久化机制 AOF

Redis 持久化机制 AOF

前言Redis 有两种持久化机制,分别是 RDB 与 AOF 本篇文章将介绍 AOF 的执行过程与应用。1. AOF 简介AOF (Append only file) 持久化是以独立日志的方式记录每次...

shell脚本-expect

shell脚本-expect

一、概述       Expect是建立在tcl基础上的一个工具,Expect 是用来进行自动化控制和测试的工具。主要解决shell脚本中不可交互的问题。       在一些需要交互输入指令的场景下,...

SparkStreaming对接kafka消费模式区别

SparkStreaming对接kafka消费模式区别

Sparkstreaming对接kafka使用的消费方式与常规的kafka消费方式完全不同,其中区别主要为消费者的管理方式不同。Ø  常规消费模式Kafka常规的消费模式以消费者组为消费单元...

MySQL 8.0 新特性:Clone Plugin

MySQL 8.0 新特性:Clone Plugin

一、前言MySQL 在 8.0.17 加入了克隆插件,可以从本地或者远程克隆数据,比如需要创建主从关系,我们一般都是通过物理备份来做,那如果你使用的是 MySQL 8.0.17 及以上的版本那么就可以...

PG体系结构(三)

PG体系结构(三)

四、物理结构4.1 软件安装目录bin             //二进制可执行文件 include         //头文件目录 lib             //动态库文件 share ...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。