Windows10下XAMPP/MariaDB10.4独立库与从库共存方案咨询
在Windows 10的XAMPP MariaDB中同时运行独立数据库与只读从库实例
直接修改现有my.ini将整个实例转为从库绝对不可行——这会让你现有的业务数据库被主库数据覆盖(若存在同名库),且实例会被设为只读,彻底阻断原有应用的写入操作。正确的方案是创建完全独立的MariaDB从库实例,与现有XAMPP数据库隔离运行,具体步骤如下:
1. 搭建从库目录结构
- 复制XAMPP自带的
mysql目录(默认路径C:\xampp\mysql)到新路径,比如C:\xampp\mysql_replica - 在新目录下创建
data子目录(用于存储从库数据),以及my_replica.ini配置文件
2. 配置从库专属配置文件my_replica.ini
以下是核心配置项(需与现有实例完全区分):
[mysqld] # 与现有实例不同的端口,避免冲突 port=3307 # 从库专属数据目录 datadir=C:/xampp/mysql_replica/data # 专属socket文件路径 socket=C:/xampp/mysql_replica/mysql.sock # 唯一的server-id,不能与主库、现有实例重复(现有实例若没改,默认是1,这里设为2) server-id=2 # 开启只读模式(超级用户仍可写入,普通用户只读,符合故障转移需求) read_only=1 # 开启二进制日志与中继日志,用于复制 log_bin=mysql-bin relay_log=relay-bin log_slave_updates=1 # 主库连接配置,替换为你的实际信息 master_host=主库的IP地址 master_user=主库创建的复制账号 master_password=复制账号密码 master_port=主库的端口(通常是3306) master_connect_retry=60
3. 初始化从库数据目录
打开命令提示符,执行以下操作:
- 切换到从库的bin目录:
cd C:\xampp\mysql_replica\bin - 初始化数据目录(生成无密码root账号,方便后续配置):
mysqld --defaults-file=C:\xampp\mysql_replica\my_replica.ini --initialize-insecure
4. 注册为Windows服务(实现自动启停)
在从库bin目录下执行:
- 注册服务:
mysqld --install MariaDBReplica --defaults-file=C:\xampp\mysql_replica\my_replica.ini - 启动服务:
net start MariaDBReplica - 停止服务(如需):
net stop MariaDBReplica - 卸载服务(如需):
mysqld --remove MariaDBReplica
5. 完成主从复制收尾
- 用客户端连接从库(注意指定端口3307):
mysql -u root -P 3307 -h 127.0.0.1 - 导入你之前准备好的主库备份(若未提前导入):
source 你的主库备份文件路径.sql; - 启动复制进程:
START SLAVE; - 验证复制状态:
SHOW SLAVE STATUS\G;,确认Slave_IO_Running和Slave_SQL_Running均为Yes即可。
注意事项
- 确保端口3307未被其他程序占用,可通过
netstat -ano | findstr :3307检查 - 主库的复制账号需具备
REPLICATION SLAVE权限 - 若后续XAMPP升级,需重新复制新版本的
mysql目录到从库路径,避免版本不兼容 - 定期检查从库复制状态,防止同步中断
内容的提问来源于stack exchange,提问作者Crestwood
相关产品推荐
相关产品推荐

