温馨提示×

mysql两个数据库怎么同步

小亿
82
2024-09-13 11:30:48
栏目: 云计算

要实现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版本相同,并对数据库进行备份,以防止数据丢失。

0