要实现MySQL两个数据库之间的同步,可以使用MySQL自带的主从复制(Master-Slave Replication)功能。下面是配置主从复制的基本步骤:
-
在主服务器(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;
记下
File
和Position
的值,稍后在配置从服务器时需要用到。 -
在从服务器(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_Running
和Slave_SQL_Running
都显示为"Yes",则表示同步正常进行中。
注意:这里的同步是单向的,只有主服务器上的数据变更会反映到从服务器上。从服务器上的数据变更不会影响到主服务器。此外,在进行数据库同步前,请确保两台服务器的MySQL版本相同,并对数据库进行备份,以防止数据丢失。