在主机的my.cnf中的mysqld模块下添加
log-bin=mysql-bin
server-id=1(随便,只要和slave不一样就行,一般可用IP末尾)
在从机的mysqld模块下添加server-id
重启mysql后,在主机mysql中创建用来同步数据的账号
grant replication slave on *.* to 'replication'@'%' identified by 'replication';
flush privileges;
记录主机信息
在这之前可以先锁表
flush tables with read lock;
记录主库信息
show master status;
记录下File和Position
在从机中配置同步参数,登录到mysql后
master_log_file和master_log_pos:主机中查看的服务器状态
change master to
master_host='192.168.0.254',
master_port=3306,
master_user='replication',
master_password='replication',
master_log_file='mysql-bin.000010',
master_log_pos=5087;
master_host:主服务器的IP地址
master_port:主服务器的mysql端口(使用netstat -lntup查看,多为3306)
master_user:之前创建的用来同步的账号
master_password:之前创建的用来同步的密码
从机启动
start slave;
查看同步状态
show slave status G
确保这两个状态为Yes则表示配置成功
主机解锁
unlock tables;
Mysql服务器之间的主从同步是基于二进制日志机制,主服务器使用二进制日志来记录数据库的变动情况,从服务器通过读取和执行该日志文件来保持和主服务器的数据一致。