mysql 使用主从复制配置的好处:
1、实现服务器负载均衡 实现数据库读写分离。对于实时性比较高的,读写分离可能不好用,因为主从复制会有延时,导致数据一致性不好。
2、实现异地备份
3、提高数据库可用性,为了使数据库高可用,还是主主备份(后面会继续)比较好。双主热备份,实现数据库切换。
master:win7 mysql版本5.6
slave: CentOS7 mysql版本5.7
为了更好的兼容性,这里使用低版本作为主服务器
1、修改主服务器master:
打开C:\Program Files\MySQL\MySQL Server 5.6\my.ini
2、修改从服务器
3、重启两台mysql
win7: net stop mysql
net start msyql
CentOS: systemctl restart mysqld.service
如果是CentOS5或6 :service mysqld restart
4、进入mysql命令行进行设置
master:GRANT REPLICATION SLAVE ON *.* to 'victor'@'%' identified by '123456';
查看master 状态 :
记住File和Position,不要操作主服务器
slave:连接到master并启动slave
change master to master_host='192.168.1.111',master_user='victor',master_password='123456',master_log_file='mysql-bin.000008',master_log_pos=120;
start slave;
查看slave状态:
show slave status;
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.1.111 //主服务器地址
Master_User: victor //授权帐户名,尽量避免使用root
Master_Port: 3306 //数据库端口,部分版本没有此行
Connect_Retry: 60
Master_Log_File: mysql-bin.000008
Read_Master_Log_Pos: 120 //#同步读取二进制日志的位置,大于等于Exec_Master_Log_Pos
Relay_Log_File: victor123-relay-bin.000002
Relay_Log_Pos: 317
Relay_Master_Log_File: mysql-bin.000008
Slave_IO_Running: Yes //此状态必须YES
Slave_SQL_Running: Yes //此状态必须YES
注:Slave_IO及Slave_SQL进程必须正常运行,即YES状态,否则都是错误的状态;
5、测试
新建数据库:
新建完后刷新slave数据库
在master新建表插入数据
到此主从复制没有问题