mysql 主从复制

(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的翻译的大差不差的)

仅仅做数据备份的话,这样配置就行了。要是读写分离啥的,还是看官网在优化下配置吧

原文地址:https://www.cnblogs.com/rchao/p/9529698.html