温馨提示×

mysql数据同步debian技巧

小樊
52
2025-04-26 02:24:09
栏目: 云计算

在Debian系统上实现MySQL数据同步的技巧主要包括使用MySQL的主从复制功能。以下是一个基本的步骤指南:

  1. 配置主服务器
  • 编辑主服务器的MySQL配置文件 /etc/mysql/my.cnf/etc/my.cnf,添加或确认以下配置:
[mysqld]
server-id=1  # 主服务器的唯一标识
log-bin=mysql-bin  # 启用二进制日志
binlog_format=ROW  # 使用ROW格式的二进制日志,记录数据变更
  • 重启MySQL服务以应用配置更改:
sudo systemctl restart mysql
  • 创建一个用于复制的用户,并授予必要的权限:
CREATE USER 'replica'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'replica'@'%';
FLUSH PRIVILEGES;
  • 获取主服务器的二进制日志文件名和位置:
SHOW MASTER STATUS;

记下 FilePosition 的值,稍后在配置从服务器时会用到。

  1. 配置从服务器
  • 编辑从服务器的MySQL配置文件 /etc/mysql/my.cnf/etc/my.cnf,添加或确认以下配置:
[mysqld]
server-id=2  # 从服务器的唯一标识
relay-log=mysql-relay-bin  # 启用中继日志
log_slave_updates=1  # 从服务器上的更新也记录到自己的二进制日志中
read_only=1  # 从服务器默认只读,防止数据被修改
  • 重启MySQL服务以应用配置更改:
sudo systemctl restart mysql
  • 配置从服务器连接到主服务器,并指定同步的数据库:
CHANGE MASTER TO
    MASTER_HOST='主服务器IP',
    MASTER_USER='replica',
    MASTER_PASSWORD='password',
    MASTER_LOG_FILE='mysql-bin.000001',  # 使用之前获取的文件名
    MASTER_LOG_POS=123;  # 使用之前获取的位置
  • 启动从服务器的复制进程:
START SLAVE;
  1. 验证同步状态
  • 在从服务器上执行以下命令,检查复制状态:
SHOW SLAVE STATUS\G;

确保 Slave_IO_RunningSlave_SQL_Running 都是 Yes,表示同步正常进行。

  1. 处理同步问题
  • 如果从服务器上没有同步到数据,可能需要停止从服务器,手动导入主服务器的数据,然后重新启动从服务器:
mysql -uroot -p test < /path/to/master.sql
  • 在从服务器上停止复制:
STOP SLAVE;
  • 更改从服务器的主服务器信息:
CHANGE MASTER TO
    MASTER_HOST='主服务器IP',
    MASTER_USER='replica',
    MASTER_PASSWORD='password',
    MASTER_LOG_FILE='mysql-bin.000002',  # 使用新的文件名
    MASTER_LOG_POS=新的位置;
  • 重新启动从服务器:
START SLAVE;
  1. 监控和维护
  • 定期检查主从服务器的状态,确保同步正常运行。
  • 监控网络连接和日志文件,以便及时发现并解决同步问题。

0