mysql设置主从,主主的区别主要在于my.conf的配置:
主从的话只需要在
1)主my.conf上定义一个server-id, binlong的路径,需要同步的db(空着默认等于同步所有db),需要忽略的db; 会在/data/mysql下面生成binlog.00001~00005
2)在主的mysql上创建一个给slave机器登录同步用的账户;
mysql> grant replication slave on *.* to 'admin'@'172.29.141.115' identified by '12345678';
mysql> flush privileges ;
3)在slave的my.conf上添加master的IP,2步骤给予的账户,需要同步的db,需要忽略的db;
之后配置主从配置内容:
什么是binlog:
binlog日志用于记录所有更新了数据或者已经潜在更新了数据(例如,没有匹配任何行的一个DELETE)的所有语句。语句以“事件”的形式保存,它描述数据更改。
binlog作用
因为有了数据更新的binlog,所以可以用于实时备份,与master/slave复制.
所以在slave机器上要指定master机器当前是从binlog的哪一段开始操作的,通过show master status可以查到,file是使用哪个binlog, position是使用binlog中的哪一段。
之后再slave上操作:
mysql> stop slave ;
mysql> change master to master_host=1.1.1.1, master_user='admin', master_password='12345678', master_log_file='binlog.000005', master_log_pos=488;
mysql> CHANGE MASTER TO MASTER_CONNECT_RETRY=60; (主从多久连一次)
mysql>start slave
之后在master上操作就会在slave上同步了。
****************************************************************************************************
上面是主从配置,主主配置和主从的区别是,主从配置的话你在slave写master不会同步,主主的话互为准备,在任何一台写都可以同步到对方。配置的方法是:
上面的第1)2)3)步要在主从上都配置,server-id不能一样,两台都要创建一个对方机器的访问账户。
三、双向备份说明
主库必须启用Bin log,主库和从库必须有唯一的Server Id
从库必须清楚了解从主库的哪一个Bin log文件的哪一个偏移位置起开始复制
从库可以从主库只复制指定的数据库,或者数据库的某些数据表
主库和从库的数据库名称可以不一样,不过还是推荐使用一样的名称
主库和从库的MySQL版本需保持一致
从MySQL3.23.15以后,MySQL支持单向的异步复制。也就是说,1台mysql服务器充当Master(主库),1台或多台MySQL服务器充当Slaves(从库),数据从Master向Slaves进行异步复制。注意,这种复制是异步的,有别于MySQL的同步复制实现(这种实现称做MySQL集群,MySQL Cluster)。
当主库有更新的时候,主库会把更新操作的SQL写入二进制日志(Bin log),并维护一个二进制日志文件的索引,以便于日志文件轮回(Rotate)。在从库启动异步复制的时候,从库会开启两个I/O线程,其中一个线程连接主库,要求主库把二进制日志的变化部分传给从库,并把传回的日志写入本地磁盘。另一个线程则负责读取本地写入的二进制日志,并在本地执行,以反映出这种变化。较老的版本在复制的时候只启用一个I/O线程,实现这两部分的功能。
本文转自UVN2015 51CTO博客,原文链接:http://blog.51cto.com/10851095/1946392,如需转载请自行联系原作者