`
sooxin
  • 浏览: 257634 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

mysql互为主从

    博客分类:
  • DB
 
阅读更多
说明:
按前一篇日记方法装了两台机器测试
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互为主从高可用安装配置

    根据提供的标题、描述、标签及部分内容,我们可以了解到这篇文章主要讲述的是如何通过Keepalived与MySQL构建一个互为主从(双主)的高可用性架构。接下来将详细解析这些步骤,并进一步扩展相关的知识点。 ### 一、...

    mysql 互为主从同步研究和各种问题的解决

    - 在互为主从配置中,两个服务器既是主服务器,也是从服务器。这意味着任何一方都可以接受写操作,然后将更改同步到另一个服务器。这种配置提高了系统的容错性,但需要更复杂的冲突处理策略,因为可能会出现同时...

    mysql互为主从配置.txt

    mysql互为主从配置

    Mysql双服务器互为主从和读写分离配置

    ### MySQL 双服务器互为主从与读写分离配置详解 #### 一、基础知识与预备工作 **MySQL 主从复制机制**是一种数据复制技术,通过它可以让一个MySQL服务器(主服务器)的数据自动同步到另一个或多个MySQL服务器(从...

    mysql-5.6.19数据库安装、优化、互为主从 mysql集群 高可用 )

    mysql-5.6.19数据库安装、优化、互为主从 mysql集群 高可用

    mysql数据库互为主从配置方法分享

    配置后结果:A-C互为主从,B为A的slave,D为C的slave。 0)准备工作 在四台机器上面安装好mysql后,创建用于同步的账号。 添加账户: 代码如下: INSERT INTO user (Host,User, Password,Select_priv,Insert_priv,...

    mysql配置双主配置,互为主从

    mysql配置双主配置,互为主从

    mysql5.7操作文档大全

    #### 七、MySQL互为主从配置 - **基本条件**:同样包括必要的硬件和软件要求。 - **主机A配置**:涉及修改配置文件、初始化bin-log日志等步骤。 - **主机B配置**:同样需要完成相应的配置修改。 - **同步配置**:...

    实战高可用MySQL MM + keepalived案例+环境搭建

    使用MySQL双master+keepalived是一种非常好的解决方案,在MySQL-HA环境中,MySQL互为主从关系,这样就保证了两台MySQL数据的一致性,然后用keepalived实现虚拟IP,通过keepalived自带的服务监控功能来实现MySQL故障...

    centos6 多机互为主从配置

    本文档主要介绍如何在CentOS 6环境中实现MySQL多机互为主从配置,即通过Keepalived与MySQL相结合来构建高可用(HA)系统。此配置能够确保在主服务器发生故障时,系统能够快速地自动切换至备用服务器,从而保证业务...

    mysql+keepalived互为主从架构.docx

    MySQL+Keepalived互为主从架构是一种高可用性和高并发的解决方案,主要用于保障数据库服务的稳定性和数据的一致性。在这种架构中,两个MySQL服务器(Master M1 和 Master M2)互为主从,通过半同步复制确保数据在主...

    CentOS7下MySQL8的主主互备安装文档和my.cnf配置文件

    首先,我们从【标题】入手,"CentOS7下MySQL8的主主互备安装文档"意味着我们将学习在CentOS7这个Linux发行版上安装MySQL 8.0数据库服务器,并设置主主复制(也称为主备同步),使得两个或多个MySQL实例可以相互备份...

    mysql_双主+keepalived读写分离.docx

    masterA 是 masterB 的主库,masterB 又是 masterA 的主库,它们互为主从。这样可以实现高可用性和读写分离。 Keepalived 架构 Keepalived 是一个基于 VRRP 协议来实现的 WEB 服务高可用方案,可以利用其来避免单...

    mysql主从互备实战

    ### MySQL主从互备实战详解 #### 一、前言 在现代的互联网应用中,数据库作为关键的数据存储层,其稳定性和可用性至关重要。为了提高数据库系统的可靠性和响应速度,许多企业会采用MySQL主从互备(Master-Slave ...

    使用keepalived实现对MySQL主从复制的主备自动切换

    使用MySQL+keepalived是一种非常好的解决方案,在MySQL-HA环境中,MySQL互为主从关系,这样就保证了两台 MySQL数据的一致性,然后用keepalived实现虚拟IP,通过keepalived自带的服务监控功能来实现MySQL故障时自动...

Global site tag (gtag.js) - Google Analytics