1.主服务器配置
在主数据库的 my.cnf 文件中加入
1.
log-bin=mysql-bin #开启二进制日志 必填
server-id=1 #设置server-id 必填
binlog-do-db=HA #可以被从服务器复制的库。二进制需要同步的数据库名
binlog-ignore-db=mysql #不可以被从服务器复制的库
2.登录主数据库 后创建同步账号
CREATE USER '用户名'@'从数据库ip' IDENTIFIED BY '密码'; #创建用户
GRANT REPLICATION SLAVE ON *.* TO '用户名'@'从数据库ip';#分配权限
flush privileges; #刷新权限
3.SHOW MASTER STATUS; 查找主数据库master状态
2.从服务器配置
在从数据库的 my.cnf 文件中加入
1.
log-bin=mysql-bin #开启二进制日志 必填
server-id=2 #设置server-id 必填
master-host = x.x.x.x # 目标主机IP
master-user = user # 目标主机用户名
master-password = password # 目标主机密码
master-port = 3306 # 目标主机端口
master-connect-retry = 60 # 链接重连间隔(单位s)
replicate-ignore-db = mysql # 不从主机同步的数据库(多个写多行)
replicate-do-db = db1 # 要从主机同步的库(多个写多行)
replicate-do-db = db2 # 要从主机同步的库(多个写多行)
log-slave-update # 启用从机服务器上的slave日志功能,使这台计算机可以用来构成一个镜像链(A->B->C)
slave-skip-errors # 跳过错误,从机一般应该配置该项
从启数据库
2.配置从数据库到主数据的配置
CHANGE MASTER TO MASTER_HOST='主数据库ip',
MASTER_USER='用户名',
MASTER_PASSWORD='密码',
MASTER_LOG_FILE='主数据库状态中的File',
MASTER_LOG_POS=主数据库中的position;
3.启动slave同步进程:start slave;
4.查看状态开启状态 show slave status\G;
当 Slave_IO_Running: Yes Slave_SQL_Running: Yes时 配置成功!
3.主从服务器不一致导致失败后
1.停止主从服务器 后确保数据一致。
2.主服务器flush logs; 更新其二进制文件
show master status;
记下File, Position
在slave端,执行:
stop slave;
CHANGE MASTER TO MASTER_LOG_FILE='文件名',MASTER_LOG_POS=位置;
start slave;
show slave status \G