mysql如何同步指定数据库

来源:这里教程网 时间:2026-02-28 20:08:18 作者:

MySQL同步指定数据库,通常通过主从复制(Replication)实现。只需要配置主库和从库,在从库上只同步你指定的数据库即可。整个过程不复杂,关键在于正确设置过滤规则。

1. 启用主库的二进制日志并配置server-id

要开启复制,主库必须启用二进制日志,并设置唯一的server-id

编辑主库的my.cnfmy.ini文件:

[mysqld]
server-id = 1
log-bin = mysql-bin
binlog-format = ROW

重启MySQL服务使配置生效。

创建用于复制的账号:

CREATE USER 'repl'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
FLUSH PRIVILEGES;

2. 配置从库并指定要同步的数据库

从库也需要设置唯一的server-id,并且不能与主库相同。

编辑从库配置文件:

[mysqld]
server-id = 2
replicate-do-db = your_database_name  <strong># 只同步这个数据库</strong>

说明:replicate-do-db 表示只应用来自该数据库的事件。如果有多个数据库需要同步,可以添加多行,每行一个数据库。

注意:如果使用了replicate-do-db,跨库操作(如主库执行

USE other_db; UPDATE your_db.table SET ...
)可能不会被正确同步,建议保持操作在目标数据库内进行。

3. 获取主库状态并启动复制

在主库上执行:

SHOW MASTER STATUS;

记录下FilePosition值。

在从库上配置主库连接信息:

CHANGE MASTER TO
  MASTER_HOST='主库IP',
  MASTER_USER='repl',
  MASTER_PASSWORD='password',
  MASTER_LOG_FILE='mysql-bin.000001',  # 对应上面的File
  MASTER_LOG_POS=1234;                 # 对应上面的Position
<p>START SLAVE;</p>

查看从库复制状态:

SHOW SLAVE STATUS\G

检查Slave_IO_RunningSlave_SQL_Running是否都为Yes

4. 常见问题与注意事项

确保主从库时间同步,避免复制延迟误判。 防火墙开放3306端口,允许从库连接主库。 使用replicate-do-db时,SQL语句默认作用于指定数据库,否则可能跳过。 若需更灵活控制(如忽略某些表),可使用replicate-ignore-table等参数。 备份恢复方式初始化从库更安全:先在主库导出指定库数据,导入从库后再开始复制。

基本上就这些。只要主库开启binlog,从库配置好过滤规则,就能实现只同步指定数据库。关键是配置准确,状态检查到位。

相关推荐