一步步教你慢慢弄懂MariaDB主从复制到底咋配的
- 问答
- 2026-01-09 18:31:13
- 2
咱们要搞清楚主从复制是个啥,你可以把它想象成照镜子,主数据库(Master)就是你自己,从数据库(Slave)就是镜子里的你,你做什么动作,镜子里的你就跟着做什么动作,主数据库里一旦有数据变化,比如新增了一条记录,修改了某个数据,从数据库就会自动地、几乎实时地把这个变化也做一遍,这样做的最大好处就是,万一主数据库这台服务器突然坏掉了(比如硬盘坏了或者断电了),我们可以立刻让从数据库顶上去,保证业务不中断,我们还可以把一些只读的查询操作(比如生成报表、数据统计)放到从数据库上去做,减轻主数据库的压力。
我们开始一步步配置,你需要准备两台安装了MariaDB(或者MySQL,它俩配置这个非常相似)的服务器,一台当作主库,一台当作从库,假设主库的IP地址是192.168.1.100,从库的IP地址是192.168.1.101。
第一步:配置主数据库(Master)
-
修改主库的配置文件:你需要找到MariaDB的配置文件,通常叫
my.cnf或者my.ini,用文本编辑器打开它。- 在
[mysqld]这个部分下面,找到或者添加以下几行:server-id = 1 log-bin = mysql-bin binlog-format = ROW server-id = 1:这是给数据库服务器起的一个唯一编号,主库和从库不能一样,这里我们设主库为1。log-bin = mysql-bin:这行是开启“二进制日志”功能,你可以把二进制日志理解成主数据库的“操作记录本”,它会把所有改动数据的操作(比如INSERT, UPDATE, DELETE)都详细地记下来,从库就是通过读这个本子来同步数据的。mysql-bin是日志文件的前缀名,用默认的就行。binlog-format = ROW:这是指定二进制日志的记录格式,用ROW模式比较稳妥,兼容性好。- 配置好后,保存文件,然后重启MariaDB服务,让配置生效。
- 在
-
为主库创建复制账号:现在我们需要在主库上创建一个专门的账号,这个账号是给从库用来登录主库并读取那个“操作记录本”(二进制日志)的。
- 用root账号登录到主库的MariaDB。
- 执行下面的SQL命令(你可以自己改个密码,这里用
replication_password举例):CREATE USER 'replica_user'@'192.168.1.101' IDENTIFIED BY 'replication_password'; GRANT REPLICATION SLAVE ON *.* TO 'replica_user'@'192.168.1.101'; FLUSH PRIVILEGES;
- 注意:
'replica_user'@'192.168.1.101'的意思是,只允许从IP地址为168.1.101的服务器上用replica_user这个账号登录,这样做更安全。
-
查看主库状态:这是非常关键的一步,在主库上执行这个命令:
SHOW MASTER STATUS;
- 你会看到一个表格,请牢牢记住里面的两个值:
File和Position,比如可能是mysql-bin.000001和328,这相当于告诉你,当前主库的“操作记录本”写到了哪个文件的第几行,从库待会儿就要从这个位置开始同步。
- 你会看到一个表格,请牢牢记住里面的两个值:
第二步:配置从数据库(Slave)
-
修改从库的配置文件:同样,找到从库的
my.cnf文件并编辑。- 在
[mysqld]部分添加或修改:server-id = 2 - 注意这里的
server-id必须和主库不一样,我们设为2。 - 保存,然后重启从库的MariaDB服务。
- 在
-
告诉从库主库在哪里:现在我们要让从库知道它要同步谁,以及从哪个位置开始同步。
- 用root账号登录到从库的MariaDB。
- 执行下面的命令,把参数替换成你实际的信息:
CHANGE MASTER TO MASTER_HOST='192.168.1.100', MASTER_USER='replica_user', MASTER_PASSWORD='replication_password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=328;
- 这里就是在设置:主库的IP地址(
MASTER_HOST)、登录账号密码(MASTER_USER和MASTER_PASSWORD)、以及最关键的主库状态信息(MASTER_LOG_FILE和MASTER_LOG_POS),也就是你上一步用SHOW MASTER STATUS记下来的那两个值。
-
启动复制:在从库上执行:
START SLAVE;
第三步:检查复制是否正常工作
配置到最后一步了,怎么知道成没成功呢?在从库上执行这个命令:
SHOW SLAVE STATUS\G
(这里的\G是为了让结果显示得更整齐,更容易看)
在输出的一大片信息里,你要重点关注这两行:
Slave_IO_Running: YesSlave_SQL_Running: Yes
如果这两项都是Yes,那么恭喜你!主从复制已经成功配置好了,如果其中一个是No或者Connecting,那就说明有问题,常见问题包括:网络不通、主库地址写错了、复制账号密码不对、或者MASTER_LOG_FILE和MASTER_LOG_POS的位置不对,你需要根据SHOW SLAVE STATUS结果里Last_IO_Error或Last_SQL_Error字段的提示去排查错误。
最后测试一下
你可以在主库上创建一个新的数据库、一张新表,或者插入一条测试数据,然后立刻到从库上查看,如果从库也出现了同样的变化,那就证明一切OK,镜像已经照起来了!
就是配置MariaDB主从复制的完整流程,整个过程的核心就是:主库记录操作日志,从库读取日志并重放操作,只要网络通畅,配置无误,它就能自动地、默默地为你工作。

本文由盘雅霜于2026-01-09发表在笙亿网络策划,如有疑问,请联系我们。
本文链接:https://www.haoid.cn/wenda/77590.html
