前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >宝塔主主数据库双机热备

宝塔主主数据库双机热备

作者头像
浩瀚博客
发布2022-03-24 09:19:50
2.4K0
发布2022-03-24 09:19:50
举报
文章被收录于专栏:浩瀚博客

前言

宝塔现在知名度很高了,但是软件商店里却没有实现数据库主主热备的插件,尝试了MySQL主从复制(重构版)插件,但是主从还要在网站代码方面做自改才能真正上线使用,对于我这种业余选手来说满足不了需求,于是各种看教程摸索了一天终于实现了MySQL主主复制的需求,两个数据库各自为主,互相复制。再就是可视化操作对于业余选手真的很方便,下面的教程尽量可视化。也是博主想记录一下方便下次部署的时候不需要找东找西。

配置文件

1. 软件商店-MySQL-设置-配置修改

A配置文件
A配置文件
B配置文件
B配置文件

服务器A与B添加的配置文件只有第一项与最后一项不同,具体可看上图。

服务器A添加的配置

代码语言:javascript
复制
server-id = 1 #唯一id
log-bin =mysql-bin
replicate-do-db= test #数据库名
log-slave-updates
sync_binlog=1
auto_increment_increment=2
auto_increment_offset=1

服务器B添加的配置

代码语言:javascript
复制
server-id = 2 #唯一id
log-bin =mysql-bin
replicate-do-db= test #数据库名
log-slave-updates
sync_binlog=1
auto_increment_increment=2
auto_increment_offset=2

想复制多个数据库继续添加replicate-do-db项即可。

添加到[mysqld]下方即可,保存后重启两个服务器的MySQL。

重启
重启

新建用户

为了更加可视化,首先用到phpmyadmin工具给数据库新建账户。

现在我要给服务器A与B部署数据库主主复制,下面操作A与B都要操作,不同的地方会指出。

1. 在应用商店找到安装即可

phpmyadmin
phpmyadmin

2. 用root账户进入phpmyadmin管理

进入数据库
进入数据库

3. 进入管理-新建用户

新建用户
新建用户

4. 给账户FILE, REPLICATION SLAVE权限-执行

特别提醒:服务器A与B新建账户时最好账号密码相同,不然后续操作脑子会很乱。

给予权限
给予权限

A主B从

首先查看服务器A的master状态,记录二进制文件名和位置(后面会用到)

1. 服务器A 进入phpmyadmin管理-状态

查看状态
查看状态

2. 服务器B连接本地SSH

SSH终端
SSH终端

3. 服务器B root登录数据库 cd ../www/server/mysql mysql -u root -p 输入root密码后

4. 配置和启动slave服务 change master to master_host='服务器A的IP',master_user='账号',master_password='密码',master_log_file='mysql-bin.000012',master_log_pos=6574697;

这里仔细查看会发现用到了第1步获取到的信息。

start slave; 启动slave服务

演示
演示

这里博主已经配置完了就不回车了。

B主A从

首先查看服务器A的master状态,记录二进制文件名和位置(后面会用到)

1. 服务器B 进入phpmyadmin管理-状态

状态
状态

2. 服务器A连接本地SSH

SSH终端
SSH终端

3. 服务器A root登录数据库 cd ../www/server/mysql mysql -u root -p 输入root密码后

4. 配置和启动slave服务 change master to master_host='服务器B的IP',master_user='账号',master_password='密码',master_log_file='mysql-bin.000010',master_log_pos=7792253;

一样用到了第1步获取到的信息。

start slave; 启动slave服务

演示
演示

这里博主已经配置完了就不回车了。

查看状态

上面操作完成后服务器A和B都重启一下数据库,然后进入phpmyadmin管理-状态

状态
状态

这里服务器A和B都要查看,显示

代码语言:javascript
复制
Slave_IO_Running Yes 
Slave_SQL_Running Yes

两个YES就是配置成功了。

备注

stop slave; 关闭slave服务(关闭主从复制,配置失败需要重新配置时请先停止复制)

start slave; 开启slave服务(开启主从复制,如果在关闭slave服务后主数据库数据有修改,依然可以进行更新数据。因为主数据库修改数据会留下日志,而slave服务就是读取日志然后进行操作)

如果想要解除主从关系:reset slave all;

后言

验证是否成功可以自己在服务器A新建表然后查看服务器B的数据库表,反之亦然。

这里配置文件为什么不用phpmyadmin给的呢,一是之前看教程配置的就没改了,而是觉得之前配置主主的教程有解析,现在找不到了...

博主是业余人士,哪里有需要改善的地方或者哪里错了,大家可以评论指出来,大家一起学习,谢谢!

我的博客即将同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=2wsxriv2ba04c

部分参考于:宝塔Mysql数据库主从热备|数据库主主配置|主主复制时的主键冲突解决

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022 年 03 月,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 配置文件
  • 新建用户
  • A主B从
  • B主A从
  • 查看状态
  • 备注
  • 后言
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档