说明:
按前一篇日记方法装了两台机器测试
master1:192.168.5.11
master2:192.168.5.12
开启两台服务器的binlog功能(vim /etc/my.cnf,在mysqld字段下加入下面内容)
master1:
user = mysql
log-bin=mysql-bin
server-id = 1
binlog-do-db=test
binlog-ignore-db=mysql
replicate-do-db=test
replicate-ignore-db=mysql
log-slave-updates
slave-skip-errors=all
sync_binlog=1
auto_increment_increment=2
auto_increment_offset=1
skip-name-resolve
master2:
user = mysql
log-bin=mysql-bin
server-id = 2
binlog-do-db=test(要同步的数据库)
binlog-ignore-db=mysql
replicate-do-db=test
replicate-ignore-db=mysql
log-slave-updates
slave-skip-errors=all
sync_binlog=1
auto_increment_increment=2
auto_increment_offset=1
skip-name-resolve
保存然后重启mysql
################################说明#########################
server_id值必须为2到232–1之间的一个正整数值。ID值唯一的标识了复制群集中的主从服务器,因此它们必须各不相同。
binlog-do-db=database 是要记录日志的数据库;
同步多个数据库重复设置选项 binlog-do-db=test 和 replicate-do-db=test
例如
binlog-do-db=test1
replicate-do-db=test1
binlog-do-db=test2
replicate-do-db=test2
binlog-ignore-db 是不要记录日志的数据库名,多个数据库中间用逗号(,)隔开;
mysql配置文件my.cnf中 log-slave-updates表示 如果一个MASTER 挂掉的话,另外一个马上接管。
sync_binlog=1
auto_increment_increment=2
auto_increment_offset=1 指的是服务器频繁的刷新日志。这个保证了在其中一台挂掉的话,日志刷新到另外一台。从而保证了数据的同
步 。
auto_increment_offset = 1
auto_increment_increment = 2
这样A的auto_increment字段产生的数值是:1, 3, 5, 7, …等奇数ID了
auto_increment_offset = 2
auto_increment_increment = 2
这样B的auto_increment字段产生的数值是:2, 4, 6, 8, …等偶数ID了
你的auto_increment字段在不同的服务器之间绝对不会重复,所以Master-Master结构就没有任何问题了。当然,你还可以使用3 台,4台,
或者N台服务器,只要保证auto_increment_increment = N 再设置一下auto_increment_offset为适当的初始值就可以了,那样,我们的
MySQL可以同时有几十台主服务器,而不会出现自增长ID 重复。
#############################################################
二、将192.168.5.11设置为192.168.5.12的主服务器
登录数据库,在192.168.5.11上新建授权用户:
MySQL> grant replication slave on *.* to 'replication'@'%' identified by 'replication';
MySQL>flush privileges;
MySQL> show master status;(得出一下结果)
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| MySQL-bin.000003 | 374 | | |
+------------------+----------+--------------+------------------+
mysql-bin.00003就是我们要开始同步的文件,374就是初始位置。
登录到192.168.5.12,把192.168.5.11设置成自己的主服务器
MySQL> change master to master_host='192.168.1.11',master_user='replication',master_password='replication',master_log_file='MySQL-bin.000003',master_log_pos=374;(注意Mysql-bin.000003的大小写)
MySQL> start slave;
MySQL> show slave status/G; 查看同步状态(Slave_IO_Running: Yes和Slave_SQL_Running: Yes一定要为YES)
如果做简单的一主一从的话,到这里就可以了,已经完成了;如果要两个服务器互为主从的话,要在192.168.5.12上做相同的设置
将192.168.5.12设置为192.168.5.11的主服务器
登录数据库,在192.168.5.11上新建授权用户:
MySQL> grant replication slave on *.* to 'replication'@'%' identified by 'replication';
MySQL>flush privileges;
MySQL> show master status;(得出一下结果)
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| MySQL-bin.000009 | 312 | | |
+------------------+----------+--------------+------------------+
mysql-bin.00009就是我们要开始同步的文件,312就是初始位置。
登录到192.168.5.11,把192.168.5.12设置成自己的主服务器
MySQL> change master to master_host='192.168.1.12',master_user='replication',master_password='replication',master_log_file='MySQL-bin.000003',master_log_pos=312;(注意Mysql-bin.000009的大小写)
MySQL> start slave;
MySQL> show slave status/G; 查看同步状态(Slave_IO_Running: Yes和Slave_SQL_Running: Yes一定要为YES)
如果主数据库有数据的话
数据库锁表操作,不让数据再进行写入动作。mysql> FLUSH TABLES WITH READ LOCK ;
至此,mysql双机互为主从设置完毕
分享到:
相关推荐
Keepalived+Mysql互为主从高可用安装配置
Mysql互为主从和读写分离配置,以及读写分离下和单库操作的情况下性能对比
mysql主从 互为同步的研究 与各种问题 和各种奇葩问题的解决方案
mysql互为主从配置
文档详细描述了linux操作系统中mysql数据库的安装配置、并以三台mysql服务器为例进行了三台mysql数据库之间互为主从的配置讲解
mysql-5.6.19数据库安装、优化、互为主从 mysql集群 高可用
两台数据库的MYSQL互为主从从关系,通过keepalived配置的虚拟IP(VIP),实现其中一台MYSQL数据库宕机后,应用能自动切换到另外一台MYSQL数据库上,且宕机的数据库恢复后,能自动同步现有的数据,保证系统的高可用与...
配置后结果:A-C互为主从,B为A的slave,D为C的slave。 0)准备工作 在四台机器上面安装好mysql后,创建用于同步的账号。 添加账户: 代码如下: INSERT INTO user (Host,User, Password,Select_priv,Insert_priv,...
mysql配置双主配置,互为主从
MySQL互为主从配置 24 7.1 基本条件 24 7.2 安装MySQL数据库 24 7.3 主机A配置 24 7.3.1 修改my.cnf配置文件 24 7.3.2 给主机B赋予mysql权限 25 7.3.3 初始化bin-log日志 26 7.4 主机B配置 27 7.4.1 修改my.cnf配置...
Keepalived+mysql双主来实现MySQL-HA,我们必须保证两台MySQL数据库的数据完全一样,基本思路是两台MySQL互为主从关系,通过Keepalived配置虚拟IP,实现当其中的一台MySQL数据库宕机后,应用能够自动切换到另外一台...
centos6 多机互为主从配置,keepalived+mysql实现双主高可用配置
使用MySQL双master+keepalived是一种非常好的解决方案,在MySQL-HA环境中,MySQL互为主从关系,这样就保证了两台MySQL数据的一致性,然后用keepalived实现虚拟IP,通过keepalived自带的服务监控功能来实现MySQL故障...
使用MySQL+keepalived是一种非常好的解决方案,在MySQL-HA环境中,MySQL互为主从关系,这样就保证了两台 MySQL数据的一致性,然后用keepalived实现虚拟IP,通过keepalived自带的服务监控功能来实现MySQL故障时自动...
高并发
8.0.22mysql主从配置详细讲解.docx
keepalived+redis&mysql主备高可用配置文件和脚本
mysql的安装,卸载,主从复制,互为主从复制,数据迁移,优化参数
互为主从架构(双主) 1.1、一主一备 一主一备架构是双机部署中最简单的一种架构了,mysql数据库系统自带这个数据同步(主备)功能。 思路:将mysql数据库部署到两台机器,其中一台机器作为日常线上提供数据读写服务...