Mysql 主从同步(复制)

前言

MySQL数据库自身提供的主从复制功能可以方便的实现数据的多处自动备份,实现数据库的拓展。多个数据备份不仅可以加强数据的安全性,通过实现读写分离还能进一步提升数据库的负载性能。

一、安装Mysql

此为非Docker容器化方式安装,如果已经在Docker内安装,则跳过此安装步骤。
dnf install @mysql
# 启动服务并设置开机启动
systemctl enable --now mysqld

# 设置密码,按步骤操作
mysql_secure_installation

# 登录并配置远程登陆
mysql -uroot -p<上面步骤中设置的密码>

use mysql;
update user set host='%' where user='root';
flush privileges;
# 退出mysql模式
quit;

# 重启服务
systemctl restart mysqld

二、主从配置

配置文件调整(主库)

# 打开配置文件
vim /etc/my.cnf

# 根据实际需要,加配置项
[mysqld]
# server-id 服务唯一辨识号,数值位于 1 到 2^32-1之间.
server-id=10 # [必须]主从需要配置成不一样的值
# log-bin 打开二进制日志功能
# 在复制(replication)配置中,作为MASTER主服务器必须打开此项
log-bin=/data/mysql/mysql-bin  # 路径自定义

# 配置需要同步的数据库
# binlog-do-db=

# 忽略不需要同步的数据库
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema

expire_logs_days=14 #删除过期的binlog

配置文件调整(从库)

# 打开配置文件
vim /etc/my.cnf

# 根据实际需要,加配置项
[mysqld]
# server-id 服务唯一辨识号,数值位于 1 到 2^32-1之间.
server-id=11 # [必须]主从需要配置成不一样的值

# 配置需要同步的数据库
# replicate-do-db=

# 忽略不需要同步的数据库
replicate-ignore-db=mysql
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema

服务配置

重启服务并进行主从设定,如下操作需保持主服务未进行任何数据操作
# 在主服务器上操作

# 创建一个专用同步的账号
CREATE USER `repl`@`%` IDENTIFIED WITH mysql_native_password BY 'manongdashu';
# 给账号分配主用作同步的权限
GRANT Replication Slave ON *.* TO `repl`@`%`;
# 刷新权限
FLUSH PRIVILEGES;

quit;
# 重启mysql服务
systemctl restart mysqld

# 查看主mysql状态,并记录当前操作值
# 登录mysql查看同步记录信息
mysql -u root -p
show master status;

# 在从服务器上执行

CHANGE MASTER TO 
MASTER_HOST='10.211.55.10',     # 主Mysql地址
MASTER_PORT=3306,               # 端口
MASTER_USER='repl',             # 账号
MASTER_PASSWORD='manongdashu',  # 密码
MASTER_LOG_FILE='mysql-bin.000001',   # 主服务上刚刚记录的值
MASTER_LOG_POS=651,                   # 主服务上刚刚记录的位置
get_master_public_key=1;

# 启用同步
start slave;
# 查看从服务状态
show slave status\G;

三、访问测试

分享到:
本文链接:https://blog.renzicu.com/2021/mysql_master_slave/index.html
版权声明:本博客所有文章除特别声明外,均采用 CC BY 4.0 许可协议。转载请注明出处!
THE END
二维码
打赏
文章目录
关闭
目 录