MYSQL主备搭建

阅读: 评论:0

MYSQL主备搭建

MYSQL主备搭建

MYSQL主备搭建

  • 环境准备
  • 主库配置
  • 备库配置
  • 开始同步

环境准备

  1. 服务器: CENTOS7
  2. 数据库: MYSQL 5.7

主库配置

先给数据库添加一个专门用于同步的用户, 这里repl是用户名,123456是密码, 且只限于同一网段

GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO repl@'192.168.0.%' IDENTIFIED BY '123456';

找到MYSQL的配置文件并添加以下配置。 我的是在/etc/myf, 如果你的MYSQL是用docker安装的话, 则要进入docker容器里面找

[mysqld]
##  binlog文件名
log_bin = mysql-bin
## MYSQL实例id, 不能重复
server_id = 10
## 仅将以下数据库记录binlog, 不记录的则不会同步
## binlog_do_db = dbname1,dbname2
## 以下是推荐配置, 且是默认配置
## sync_binlog = 1
## innodb_flush_log_at_trx_commit = 1
## innodb_support_xa = on
## binlog_format = row

备库配置

和主库一样, 先添加一个同步的用户

GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO repl@'192.168.0.%' IDENTIFIED BY '123456';

找到配置文件, 添加以下配置

[mysqld]
log_bin = mysql-bin
server_id = 20
## 中继日志
relay_log = /var/log/mysql/mysql-relay-bin
## 允许备库将重放事件记录到自身的binlog中
log_slave_updates = 1
## 只读, 也可以不设置
read_only = 1
## 需要同步的数据库, 逗号分隔(不添加代表同步所有)
## replicate-do-db = dbname
## 不需要同步的表, 多个需要分别设置
## replicate-ignore-table = dbname.table_name1
## replicate-ignore-table = dbname.table_name2

开始同步

由于我们修改了数据库的配置 , 所以第一件事就是将两个数据库重启, 重启完成之后在主库执行命令show master status, 可以看到生成的binlog文件名

FilePositionBinlog_Do_DBBinLog_Ignore_DBExecuted_Gtid_Set
mysql-bin.00000198dbname

注意: 如果主库已经运行了一段时间,而不是新安装的。那么需要先将主库克隆一份到备库,比如使用mysqldump转存一份到备库上

下一步就是告诉备库如何连接到主库并重放binlog, 这一步推荐使用CHANGE MASTER TO语句来执行, 而不是修改配置文件。在备库上执行以下语句:

CHANGE MASTER TO MASTER_HOST = 'MASTER_SERVER_HOST', MASTER_USER = 'repl', MASTER_PASSWORD = '123456', MASTER_LOG_FILE = 'mysql-bin.000001', MASTER_LOG_POS = 0;

MSTER_LOG_POS参数设置为0, 是因为要从日志的开头读起。执行完之后再通过SHOW SLAVE_STATUS检查复制是否正确执行。

Slave_IO_StateMaster_HostMaster_UserMaster_PortConnect_RetryMaster_Log_FileRead_Master_Log_PosRelay_Log_PosRelay_Master_Log_FileSlave_IO_RunningSlave_Sql_RunningSeconds_Behind_Master
MASTER_SERVER_HOSTrepl330660mysql-bin.0000014mysql-relay-bin.000001mysql-bin.000001NoNo0
最后再执行START SLAVE语句开始进行同步。

没有显示错误则再次执行SHOW SLAVE_STATUS查看状态,也可以在主库及备库上通过SHOW PROCESSLIST命令查看同步线程的状态。

主库

IdUserHostdbCommandTimeStateInfo
15replMASTER_SERVER_HOST:14732Binlog Dump2770Master has sent all binlog to slave; waiting for more updates
备库
IdUserHostdbCommandTimeStateInfo
----------------------------------------
1system userConnect2749Waiting for master to send event
2system userConnect2742Slave has read all relay log; waiting for more updates

本文发布于:2024-02-01 04:53:03,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170673438134006.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

下一篇:后端技术
标签:MYSQL
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23