MySQL 主从复制添加新数据库的详细步骤

前提条件

  • 已存在正常运行的 MySQL 主从复制环境
  • 具有主库和从库的管理员权限
  • 确保主从服务器版本兼容
图片[1]_MySQL 主从复制添加新数据库的详细步骤_知途无界

步骤一:在主库上准备新数据库

  1. 登录主库
   mysql -u root -p
  1. 创建新数据库
   CREATE DATABASE new_database;
  1. 创建测试表并插入数据(可选)
   USE new_database;
   CREATE TABLE test_table (id INT PRIMARY KEY, name VARCHAR(50));
   INSERT INTO test_table VALUES (1, 'Test Data');
  1. 刷新二进制日志
   FLUSH LOGS;

这一步确保新数据库的创建操作被记录到新的二进制日志文件中

步骤二:在从库上配置复制

  1. 登录从库
   mysql -u root -p
  1. 停止从库复制线程
   STOP SLAVE;
  1. 重置从库复制状态(可选)
    如果从库之前有复制问题,可以重置:
   RESET SLAVE ALL;

注意:这会清除所有复制配置,如果已有其他数据库在复制,需要重新配置

  1. 检查主库状态
    在主库上执行:
   SHOW MASTER STATUS;

记录下 FilePosition

  1. 配置从库复制(如果尚未配置)
    如果从库尚未配置复制,执行:
   CHANGE MASTER TO
   MASTER_HOST='master_ip',
   MASTER_USER='replication_user',
   MASTER_PASSWORD='replication_password',
   MASTER_LOG_FILE='recorded_file_from_step_4',
   MASTER_LOG_POS=recorded_position_from_step_4;

如果已有其他数据库在复制,跳过此步

步骤三:指定复制特定数据库(可选)

如果只想复制新数据库而不同步其他数据库:

  1. 在从库上设置复制过滤
   CHANGE REPLICATION FILTER REPLICATE_DO_DB = (new_database);

或者添加到现有过滤规则:

   CHANGE REPLICATION FILTER REPLICATE_DO_DB = (existing_db1, existing_db2, new_database);

步骤四:启动从库复制

START SLAVE;

步骤五:验证复制状态

  1. 检查从库状态
   SHOW SLAVE STATUS\G

检查以下关键字段:

  • Slave_IO_Running: Yes
  • Slave_SQL_Running: Yes
  • Seconds_Behind_Master: 0 或接近0
  1. 验证数据同步
    在从库上检查新数据库和表是否存在:
   USE new_database;
   SELECT * FROM test_table;

高级配置选项

1. 使用通配符复制多个数据库

CHANGE REPLICATION FILTER REPLICATE_WILD_DO_TABLE = ('new_database.%');

2. 排除特定表

CHANGE REPLICATION FILTER REPLICATE_IGNORE_TABLE = ('new_database.excluded_table');

3. 动态添加复制用户(如果需要)

在主库上创建专用复制用户:

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

常见问题解决

  1. 复制错误处理
  • 如果出现错误,检查 SHOW SLAVE STATUS\G 中的 Last_Error
  • 常见错误包括权限不足、表结构不匹配等
  1. 跳过错误(谨慎使用)
   STOP SLAVE;
   SET GLOBAL sql_slave_skip_counter = 1;
   START SLAVE;
  1. 重新同步
    如果复制严重不同步,可能需要:
   STOP SLAVE;
   RESET SLAVE ALL;

然后重新配置复制

最佳实践

  1. 在生产环境操作前,先在测试环境验证
  2. 使用版本控制管理数据库变更脚本
  3. 定期监控复制延迟和状态
  4. 考虑使用 GTID (Global Transaction Identifier) 简化复制管理

通过以上步骤,您可以成功将新数据库添加到现有的 MySQL 主从复制环境中。

© 版权声明
THE END
喜欢就点个赞,支持一下吧!
点赞77 分享
评论 抢沙发
头像
欢迎您留下评论!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容