mysql两个数据库怎么同步

1395
2024/9/13 12:31:50
栏目: 云计算
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

要实现MySQL两个数据库之间的同步,可以使用MySQL自带的主从复制(Master-Slave Replication)功能。下面是配置主从复制的基本步骤:

  1. 在主服务器(Master)上设置: a. 修改my.cnf文件,通常位于/etc/mysql/my.cnf/etc/my.cnf。 b. 在[mysqld]部分添加以下内容:

    server-id=1
    log-bin=mysql-bin
    binlog-do-db=<需要同步的数据库名>
    binlog-format=row
    

    c. 重启MySQL服务。 d. 登录MySQL,创建一个专门用于同步的用户并授权:

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

    e. 查询主服务器的二进制日志文件名和位置:

    SHOW MASTER STATUS;
    

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

  2. 在从服务器(Slave)上设置: a. 修改my.cnf文件,通常位于/etc/mysql/my.cnf/etc/my.cnf。 b. 在[mysqld]部分添加以下内容:

    server-id=2
    relay-log=relay-bin
    relay-log-index=relay-bin.index
    

    c. 重启MySQL服务。 d. 登录MySQL,配置主服务器信息:

    CHANGE MASTER TO
      MASTER_HOST='主服务器IP',
      MASTER_USER='repl',
      MASTER_PASSWORD='your_password',
      MASTER_LOG_FILE='从主服务器查询到的File名',
      MASTER_LOG_POS=从主服务器查询到的Position值;
    

    e. 启动从服务器同步:

    START SLAVE;
    

完成以上步骤后,从服务器将开始与主服务器进行数据同步。你可以通过以下命令查看从服务器的同步状态:

SHOW SLAVE STATUS\G;

如果Slave_IO_RunningSlave_SQL_Running都显示为"Yes",则表示同步正常进行中。

注意:这里的同步是单向的,只有主服务器上的数据变更会反映到从服务器上。从服务器上的数据变更不会影响到主服务器。此外,在进行数据库同步前,请确保两台服务器的MySQL版本相同,并对数据库进行备份,以防止数据丢失。

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: mysql计算时间差的方法是什么