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/my.cnf, 如果你的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
  • 4
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
要在Windows上搭建MySQL主备一键脚本,可以按照以下步骤进行操作: 1. 首先,你需要下载并安装MySQL的Windows安装程序。你可以从MySQL官方网站的下载页面上找到适用于Windows的MySQL安装程序,选择适合你系统版本的下载链接。 2. 下载完成后,运行安装程序并按照安装向导进行安装。在安装过程中,可以选择自定义安装选项,并设置MySQL的安装路径及其他相关配置。 3. 接下来,你需要下载主备一键搭建脚本。这些脚本可以从MySQL社区中的资源库或开源项目中获取。搜索关键词“MySQL主备一键搭建脚本”,你可以找到一些可用的脚本。 4. 下载脚本后,解压缩脚本文件,并查看里面的说明文档,根据文档进行配置。 5. 运行主备一键搭建脚本,并根据脚本的提示进行操作。脚本通常会要求提供一些配置参数,例如主库和备库的IP地址、用户名、密码等信息。 6. 在脚本执行过程中,它会自动配置主库和备库的设置,并在主库上创建和管理备份和日志文件。脚本还会配置主备复制和监控机制,确保数据同步和故障转移的正常运行。 7. 执行完脚本后,你可以通过连接MySQL客户端工具验证主备复制是否正常工作,以及在主库上插入、更新或删除数据,看看是否在备库上同步生效。 请注意,使用第三方脚本需谨慎,最好选择可信赖的脚本并做好备份和测试工作。此外,可以参考MySQL官方文档和社区来获取更多关于主备一键搭建的最佳实践和指导。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值