(win版测试已成功,linux版未测试)
主库配置
#server-id和log-bin #设置id 主库和从库不一样就行 一般按照ip的最后3位数字设置 server-id=250 #二进制日志文件名 log-bin = mysql-bin #要同步的数据库 binlog-do-db=test
主库创建复制用户(这里的ip,是从库的ip)
GRANT REPLICATION SLAVE,RELOAD,SUPER ON *.* TO mysql_backup@'192.168.1.251' IDENTIFIED BY '123456'; flush privileges;
flush privileges;//刷新权限
show master status;
从库配置
#和主库id不一样就行 server-id = 251 replicate-do-db = test
这里的ip,是主库的ip。master_user ,master_password 分别是主库创建的复制用户的用户名和密码(每次添加其他同步的数据库是,这里需要重新执行,当然主库的还是要先执行show master status:
查看file set和position的值,修改master_log_file和master_log_pos的值)
stop slave; change master to master_host='192.168.1.250',master_port=3306,master_user='mysql_backup',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=4100; start slave;
show slave status G 命令查看 slave状态
Slave_IO_Running、Slave_SQL_Running 状态必须都是是 YES
这里是没有错误的(这样就可以同步了),有错误的话后面会有提示
注意点 :需要注意防火墙问题,向所有从库所在ip,开放mysql连接端口
否则slave_Io_Running:connecting(不能进行同步)
官方文档:https://dev.mysql.com/doc/refman/5.7/en/replication-options-slave.html
详细配置从官网可以查看(ps qq浏览器和google chrome浏览器都可以直接翻译网页,看不懂英文可以用这个看。我用的qq的翻译的大差不差的)
仅仅做数据备份的话,这样配置就行了。要是读写分离啥的,还是看官网在优化下配置吧