MySQL支持单双向、链式级联、实时、异步复制。在复制过程中,一台服务器充当主服务器(Master),而一个或多个其他服务器充当从服务器(Slave)。
复制可以是单向:M-->S,也可以是双向:M<-->M,还可以多M环状复制,还有级联复制。
如果设置了链式级联复制,那么从服务器本身除了充当从服务器外,也会同时充当其下面从服务器的主服务器。
在当前的生产工作中,大多数应用的MySQL主从同步都是异步的复制方式,即不是严格实时的数据同步。
当配置好主从复制后,所有对数据库内容的更新就必须在主服务器上进行,以避免用户对主服务器上数据库内容的更新与对从服务器上数据库内容的更新不一致而导致发生冲突。
第一种防止数据写从库的方法:
采取忽略授权表方式的同步,然后对从服务器上的用户仅授权select读权限。不同步mysql库,这样就保证给同一用户在主库和从库中授予不同的权限。
第二种防止数据写从库的方法:
在从服务器启动选项中增加read-only选项,或者在my.cnf文件中添加read-only参数来确保从库只读。如果二者同时操作效果更佳。read-only参数可以让从服务器只允许来自从服务器线程或具有super权限的用户更新,不接受来自普通用户的更新。而在启动选项中增加--read-only也是同样效果。