MySQL主从复制配置

振鹭2年前技术文章807

一、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信息进行调试


相关文章

PG的执行计划

一、Explain基本使用1.1 命令解释explain [ ( option [,...] ) ] statement explain [ analyze ] [ verbose ] statem...

CDP实操--配置RangerKMS 并基于Navigator Trustee Server存储KMS密钥

CDP实操--配置RangerKMS 并基于Navigator Trustee Server存储KMS密钥

1.1添加用于部署KMS的服务器到集群从集群host页面里添加两台服务器用于部署rangerkms选择kms-1和kms-2两台服务器等待parcel分发到新加服务器上并自动完成激活 等待host i...

MySQL创建用户授权

创建用户授权一、创建用户1.创建管理用户create user 'test'@'%' identified by 'Test123@'create user 'test'@'localhost' id...

PG的表膨胀

1 什么是表膨胀众所周知,PostgreSQL的多版本并发是通过保留变更前的记录来实现的。当数据记录被DML修改,旧版本记录仍保留不变,仅仅需要修改相关记录的xmin、xmax属性,并新增写入变更后的...

数仓主流架构简介之二

数仓主流架构简介之二

一、流批一体数据批流一体是一种云计算架构模式,它结合了批处理和流处理的特点,以实现更高效、灵活和可扩展的数据处理能力。在这种模式下,数据可以同时进行批处理和流处理,以满足不同场景下的需求流批一体:是指...

Flume使用案例之监控端口数据

监控端口数据目标:Flume监控一端Console,另一端Console发送消息,使被监控端实时显示。分步实现:1. 安装telnet工具yum -y install telnet2. 创建Flume...

发表评论    

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