1. 正确安装相同版本的数据库。
这里安装的是mysql5.5.18.具体安装方法看github上的脚本。
2. 开启binlog
master上必须开启,slave上可以不开启。
log_bin = mysql-bin
server_id = 1
然后master上输入:
show master status
slave的配置文件最关键的是server_id
其他的可以默认。
注意file和position,一会儿会用到。
3. 设置专门复制的账户。
一般主机上创建就行,备机上创建了也无所谓,一般建议都创建;
grant replication slave,replication client on *.* to repl@'172.100.102.%' identified by "123456";
4. 把要复制的数据库备份还原到slave上。
如果两个都是空的数据库的话,没这个必要,如果master上有数据,slave上没有数据的话,还得先把数据同步到slave上,一般数据不多的话用mysqldump就行了。
5. 备机上通过命令行执行复制操作。
change master to master_host='172.100.102.101',master_port=3307,master_user='repl',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=1153,master_connect_retry=100;
执行完命令后,start slave
然后 show slave status\G;
一般看这3个关键参数:
Slave_IO_Running: Yes
确保都是yes,最后一个是0 无延迟,如果报错的话,最好在master上重新刷新一下log
Slave_SQL_Running: Yes
Seconds_Behind_Master: 0
flush logs
重新生成binlog,然后slave上继续执行复制操作的命令。重新看状态。
搞定!!!
备注:
- 设置好主从后备机还是可以写入的。