MySQL主从复制配置

振鹭4个月前技术文章118

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


相关文章

mysql表结构对比工具介绍

mysql表结构对比工具介绍

一、AmpNmp.DatabaseCompare工具1、工具特点:优点:比较两个数据库全部表结构的差异,包括表名、存储引擎、字符集、注释的不同,以及每张表中的字段名、数据类型、字符集、默认值、注释的不...

Alluxio 部署

Alluxio 部署

1、基础环境准备配置java环境变量tar -xzvf jdk-8u281-linux-x64.tar.gz -C /opt ln -s ...

trino组件对接hudi(四)

trino组件对接hudi(四)

安装部署本文是基于已经部署了trino组件的环境上,进行的trino和hudi的对接,使trino组件能够正常查询hudi表。1、增加hudi connector配置在trino安装部署下的etc/c...

Ranger部署

安装前准备1.1. 创建用户和用户组groupadd rangeruseradd -g ranger ranger1.2. 数据库配置mysql -uroot -p -hxxx.xxx.xxx.13 ...

Spark对接ranger

Spark对接ranger

1、包如图所示https://dtstack-download.oss-cn-hangzhou.aliyuncs.com/insight/insight-4em/release/hadoop/spar...

DBMS_SESSION包跟踪10046

注意:DBMS_SESSION包:只能跟踪当前会话,不能指定会话DBMS_SESSION.SET_SQL_TRACE=ALTER SESSION SET SQL_TRACE; =ALTER SESSI...

发表评论    

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