对MySQL-A数据库的操作,在数据库执行后,都会写入本地的日志系统A中。
假设,实时的将变化了的日志系统中的数据库事件操作,在MYSQL-A的3306端口,通过网络发给MYSQL-B。
MYSQL-B收到后,写入本地日志系统B,然后一条条的将数据库事件在数据库中完成。
那么,MYSQL-A的变化,MYSQL-B也会变化,这样就是所谓的MYSQL的复制,即MYSQL replication。
简单一句话概括:主数据库变化将生成日志文件放在本地,从数据库通过网络请求拿到数据库日志文件写到自己的库中,保证数据一致
主从复制问题:即便不考虑网络的因素,MYSQL-A的数据库操作是可以并发的执行的,但是MYSQL-B只能从日志中读一条一条执行下。因此MYSQL-A的写操作很频繁,MYSQL-B很可能跟不上。
解决办法:清除所有数据,重新同步
主从复制的作用:1数据防丢失2备份3读写分离4数据库负载均衡5高可用
192.168.200.141 主服务器 master
192.168.200.142 从服务器slave
剩下步骤效验和主服务器不变,不过多截图
host为主数据库IP,user和pass为主数据库授权账号密码,下面两个参数为主服务器执行
show master status;所得到的参数
从服务器执行这个命令
若这两个参数均为yes,则成功,此时更改主数据库,从数据库数据相应变化,但更改从数据库,主数据库不变
1..若是报错Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work
原因:数据库为copy的,所以数据库的UUID为一样的
解决办法:将/usr/local/mysql/auto.cnf文件删除,按上面重启数据库方法重启数据库即可
2..给账号分配权限
grant all privileges on *.* to 'root'@'172.27.185.1' identified by 'root';
一般不建议用root权限账号,这个是需要IP地址的授权,安全性更高