假设有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