宝塔主主数据库双机热备

December 09, 2023
测试
测试
测试
测试
4 分钟阅读

前言

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

配置文件

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

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

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

服务器A添加的配置

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添加的配置

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都要查看,显示

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数据库主从热备|数据库主主配置|主主复制时的主键冲突解决

继续阅读

更多来自我们博客的帖子

如何安装 BuddyPress
由 测试 December 17, 2023
经过差不多一年的开发,BuddyPress 这个基于 WordPress Mu 的 SNS 插件正式版终于发布了。BuddyPress...
阅读更多
Filter如何工作
由 测试 December 17, 2023
在 web.xml...
阅读更多
如何理解CGAffineTransform
由 测试 December 17, 2023
CGAffineTransform A structure for holding an affine transformation matrix. ...
阅读更多