如何设计一个策略以优化MySql数据库同步方案?

摘要:假设有A,B两台数据库,且能相互通信。 A数据库IP:192.168.1.10 B数据库IP:192.168.1.20 准备: 数据库操作,务必提前备份好原始数据。两台服务器的MySQL数据,先同步一次。保证数据完全一致。停止mysql服务
假设有A,B两台数据库,且能相互通信。 A数据库IP:192.168.1.10 B数据库IP:192.168.1.20 准备: 数据库操作,务必提前备份好原始数据。 两台服务器的MySQL数据,先同步一次。保证数据完全一致。停止mysql服务,防止有数据生成。 第一步: 配置主数据库: 在主数据库上进行配置,打开MySQL配置文件,参数设置: [mysqld] server-id=1 log-bin=mysql-bin binlog-do-db=your_database_name 使用SSH登陆到Linux后台,输入: mysql -u root -pPassword Password是你的密码 操作SQL命令: 创建用户并授权复制权限。 CREATE USER 'repl'@'%' IDENTIFIED BY 'yourpassword'; GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%'; FLUSH PRIVILEGES; 接着输入: SHOW MASTER STATUS; 记录File和Position的值,等会儿要用。 第二步: 配置从数据库: 在主数据库上进行配置,打开MySQL配置文件,参数设置: [mysqld] server-id=2 使用SSH登陆到Linux后台,输入: mysql -u root -pPassword Password是你的密码 操作SQL命令: 创建用户并授权复制权限。 STOP SLAVE; CHANGE MASTER TO MASTER_HOST='192.168.1.10', MASTER_USER='repl', MASTER_PASSWORD='yourpassword', MASTER_LOG_FILE='mysql-bin.000040', MASTER_LOG_POS=1747; START SLAVE; 注意: 这里的IP是主数据库的IP MASTER_LOG_FILE=File的值 MASTER_LOG_POS=Position的值 接着输入: SHOW SLAVE STATUS\G; 查看数据库的同步状态。 如果以下两项都为Yes代表复制建立完成。否则请检测服务器是否能连通,参数是否设置正确。 Slave_IO_Running: Yes Slave_SQL_Running: Yes