首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

mysql互为主从设置的

基础概念

MySQL互为主从设置(也称为双主复制)是一种数据库架构,其中两台MySQL服务器互相复制数据,每台服务器都可以接受写操作。这种设置可以提高系统的可用性和容错性。

优势

  1. 高可用性:当一台服务器出现故障时,另一台服务器可以继续提供服务。
  2. 负载均衡:可以将读写操作分散到两台服务器上,提高整体性能。
  3. 数据冗余:数据在两台服务器上都有备份,减少了数据丢失的风险。

类型

MySQL互为主从设置通常涉及以下几种复制类型:

  1. 异步复制:主服务器在执行写操作后立即返回,不等待从服务器确认。
  2. 半同步复制:主服务器在执行写操作后需要等待至少一个从服务器确认后才返回。
  3. 组复制:一种更高级的复制方式,允许多个服务器组成一个复制组,提供更高的可用性和一致性。

应用场景

  1. 高并发读写:适用于需要处理大量读写操作的场景。
  2. 地理分布式系统:适用于需要在不同地理位置部署数据库的场景。
  3. 灾备系统:适用于需要高可用性和数据冗余的场景。

配置步骤

以下是一个简单的MySQL互为主从配置示例:

主服务器配置

  1. 编辑MySQL配置文件(通常是my.cnfmy.ini):
  2. 编辑MySQL配置文件(通常是my.cnfmy.ini):
  3. 重启MySQL服务。
  4. 创建一个复制用户:
  5. 创建一个复制用户:
  6. 获取主服务器的二进制日志文件名和位置:
  7. 获取主服务器的二进制日志文件名和位置:

从服务器配置

  1. 编辑MySQL配置文件:
  2. 编辑MySQL配置文件:
  3. 重启MySQL服务。
  4. 配置从服务器连接到主服务器:
  5. 配置从服务器连接到主服务器:
  6. 启动从服务器的复制进程:
  7. 启动从服务器的复制进程:

常见问题及解决方法

  1. 复制延迟:如果从服务器的复制延迟较大,可以检查网络带宽、服务器性能等因素,并考虑优化配置或增加从服务器数量。
  2. 数据不一致:确保主从服务器的配置一致,定期检查数据一致性,并使用工具如pt-table-checksum进行校验。
  3. 主从切换:如果主服务器出现故障,需要手动或自动进行主从切换。可以使用工具如MHA(Master High Availability)来简化这一过程。

参考链接

希望这些信息对你有所帮助!如果有更多具体问题,欢迎继续提问。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Mysql数据库设置主从同步

主从复制原理 分为同步复制和异步复制,实际复制架构中大部分为异步复制。...环境描述 OS:Centos6 主服务器master:192.168.11.120 从服务器slave:192.168.11.139 mysql主从配置 mysql主服务器配置(master) master...服务器配置: vim /etc/my.cnf #先看下原来配置有没以下设置,有的话修改下就行了[mysqld]server-id=120log-bin=/var/lib/mysql/mysql-bin...mysql数据库同步验证 主从数据库设置工作已经完成,可以在master新建数据库和表,插入和修改数据,查看slave是否获得同步,测试一下是否成功。...一般不成功有以下几个原因: 1.server-id 设置了一样,默认都是1,要设置不一样 2.主数据库防火墙没设置允许远程访问3306端口 3.没锁表再记录MASTER_LOG_FILE、MASTER_LOG_POS

11.1K00
  • MySQL时区设置导致主从复制报错

    问题背景 在云服务器上构建一个云数据库RDS数据库从库,构建方式也相对比较简单,和搭建主从复制没啥区别,这里不做具体介绍; 构建完成后,业务上线之后,构建从库出现主从复制报错问题,具体报错信息如下所示...: 备注:由于云数据库RDS由于没有开启GTID,所以只能基于偏移量进行主从复制、 (有些强一致性金融级云数据库RDS默认GTID是关闭mysql>show slave status\G ****...:SET @@session.time_zone=’Asia/Shanghai’ 按道理的话,设置session级别应该是支持,那为什么会出现报错呢?...接下来,我们查看一下,目前从库设置时区 mysql>show variables like '%time_zone%'; +------------------+--------+ | Variable_name...默认这个时区设置是没有的,mysql默认不支持’Asia/Shanghai’这种时区格式 mysql>set global time_zone='Asia/Shanghai'; ERROR 1298

    1.5K20

    Mysql主从

    前提: mysql主从搭建前提有: 两台虚拟机 两台虚拟机上都装有mysql,并且版本一样,两边mysql数据库文件一致,mysql安装方式我在前面博客已经介绍过了。...测试过程我这里就不说了,自己尝试, 缺点 主从虽然能解决数据库服务器负载过高问题以及备份问题,但是主从同步是有延迟,特别是当慢查询语句过多,主从服务器性能差别较大,或者网络中断情况时候,也会造成同步延迟问题...–master-connect-retry=seconds 单位为秒 默认设置为 60秒 参数含义:当重新建立主从连接时,如果连接建立失败,间隔多久后重试 通常配置以上2个参数可以减少网络问题导致主从数据同步延迟...= 1 之类设置,而slave则不需要这么高数据安全,完全可以讲sync_binlog设置为0或者关闭binlog innodb_flushlog也可以设置为0来提高sql执行效率。...另外就是使用比主库更好硬件设备作为slave 扩展 主从还能配合MySQL中proxy实现真正意义读写分离,还能配合keepalived做主从切换高可用,还能配合mysqljump做异地备份,在从库定时物理备份

    2.7K10

    mysql主从架构实现

    但是,有利就有弊,这样的话,我们主从就不能实时同步了,因为我们主从同步是通过把主上 sql 语句放在从上再执行一遍来实现,可是我们锁表的话,sql 语句就不能执行了。...我们数据已经恢复成功 5)设置主从 接下来就是按照上述步骤,对该从服务器进行设置就好: [root@slave2 ~]# vim /etc/my.cnf [mysqld] server-id...回到顶部 互为主从(双主)   还有一种数据库架构为双主模式,也就是互为主从,这种设定在企业中虽不常用,但是我们还是需要掌握。   ...2.1 环境准备:   centos系统服务器2台、 两台用户实现Mysql互为主从, 配置好yum源、 防火墙关闭、 各节点时钟服务同步、 各节点之间可以通过主机名互相通信 2.2 准备步骤: 1)iptables...KEY AUTO_INCREMENT,name char(20) not null);   因为我们设置主从,所以在任一机器使用该命令即可。

    1.1K10

    mysql主从同步

    #开启mysqlbinlog日志功能 sync_binlog = 1 #控制数据库binlog刷到磁盘上去 , 0 不控制,性能最好,1每次事物提交都会刷到日志文件中,性能最差...#不生成日志文件数据库,多个忽略数据库可以用逗号拼接,或者 复制这句话,写多行 auto-increment-offset = 1 # 自增值偏移量 auto-increment-increment...= 1 # 自增值自增量 slave-skip-errors = all #跳过从库错误 1.进入master数据库,为master创建复制用户 CREATE USER repl_user IDENTIFIED...by 'repl_passwd'; 刷新权限 FLUSH PRIVILEGES; 3.查看master状态 show master status; mysql> show master status...OK, 0 rows affected (0.04 sec) 在 Slave MySQL 终端执行查看主从同步状态: show slave status \G;

    8710

    MySQL主从搭建

    = 1001 2、进入Mysql,分别为二台master创建各种用户供对方使用 温馨提示: 本案例为双主从,也就是master同步到node,node同步到master。...单主从,就只需要不执行带*即可 #master机器上 CREATE USER 'master'@'%' IDENTIFIED BY '123456';   #node机器上(*) CREATE USER...pos位置,为slave配置复制位置 master node 5、分别切换master,注意master_log_file还有master_log_pos mysql里面操作 #node机器上 change...SQL_SLAVE_SKIP_COUNTER=1; START SLAVE; show slave status; 3、Slave_IO_Running: No #解决办法 stop slave; #根据master重新设置...status; 4、数据库主从日志很大 设置只保留30天binlog (临时,重启mysql这个参数会失败) set global expire_logs_days = 30; (永久,my.cnf

    2.4K10

    mysql主从搭建

    # 1.原理 masterI/O线程将数据写入binlog中; slaveI/O线程从masterbinlog中读取数据,写入自己Relay_Log_File日志中; slaveSQL线程从Relay_Log_File...# 2.应用场景 从服务器作为主服务器实时数据备份 主从服务器实现读写分离(主写从读),从服务器实现负载均衡 把多个从服务器根据业务重要性进行拆分访问(从服务器根据业务进行拆分) # 3.master...> 在主库上建立用于主从复制账号 mysql> CREATE USER 'rep1'@'%'; mysql> GRANT REPLICATION SLAVE ON *.* TO 'rep1'@'...%' identified by 'coolsummermoon'; 查看主库二进制日志名称 这里Position和File后面会用到 mysql> show master status\G *...',MASTER_LOG_FILE='mysql-bin.000003',MASTER_LOG_POS=154; mysql> start slave; 查看slave状态 mysql> show slave

    2.9K20

    mysql主从复制周期_Mysql主从复制

    大家好,又见面了,我是你们朋友全栈君。 Mysql主从复制 背景: Mysql可以实现主从复制,在学习了Mysql主从复制后,将一些如何主从复制过程记录下来,供以后复习使用。...准备: 在做Mysql主从复制前需要做一些准备工作: 1、同步时间 做主从服务器时间需要同步,不然会出问题。...命令:ntpdate ip (ntpdate命令需要先安装ntpdate) 2、版本一致 做主从Mysql服务需要版本一致,或者从服务器版本高于主服务器。...所有者和所属组为mysql;命令:chown mysql.mysql /app/bin_log 2)启动服务并添加主从复制需要帐号 CentOS6:service mysqld start CentOS7...步骤4、测试 1)在主数据库服务器创建一个数据库 2)在从mysql从服务器查看是否生成创建数据库 到此mysql主从复制已完成。

    4.2K10

    mysql主从配置

    怎么安装mysql数据库,这里不说了,只说它主从复制,步骤如下: 1、主从服务器分别作以下操作: 1.1、版本一致 1.2、初始化表,并在后台启动mysql 1.3、修改root密码...6、登录主服务器mysql,查询master状态 mysql>show master status; +------------------+----------+-----------...注:Slave_IO及Slave_SQL进程必须正常运行,即YES状态,否则都是错误状态(如:其中一个NO均属错误)。 以上操作过程,主从服务器配置完成。...9、主从服务器测试: 主服务器Mysql,建立数据库,并在这个库中建表插入一条数据: mysql> create database hi_db; Query OK, 1 row affected...yes(Slave_IO及Slave_SQL进程),如发现只有一个或零个yes,就表明主从有问题了,发短信警报吧。

    2.8K40

    MySQL 主从同步

    为什么需要主从复制 分别读写数据库时候,把读和写分开,能够有效提高数据库负载 保证数据高可用,一旦有一台数据库服务器宕机,不会对数据产生太大影响 可以横向扩展,实现数据库水平扩容 主从同步原理...主从复制根本原理是从 master 服务器上面的数据,通过一定方式同步到 slave 服务器上面。...上面的 3 个过程是 MySQL 主从同步大概流程,其中 binlog 和 relay log 读写都是顺序 IO,性能很高。...搭建主从同步 此处用 Linux 服务器进行演示: 安装 MySQL 修改 my.cnf 如果找不到 my.cnf文件可以直接新建一个文件,MySQL 会自动读取。...sudo vim /etc/mysql/my.cnf 打开后,加入如下内容: [mysqld]# 这行一定要有 server-id = 1 #主机可以设置为1,从机可设置为IP最后一段(保证唯一性)

    5K30

    MySQL主从复制

    MySQL主从复制 Why we need 主从复制 ? 复制功能 复制方式 复制原理 复制流程图 复制过程 复制中线程作用 从节点 主节点 从节点需要建立二进制日志文件吗?...Mysql复制特点 主从复制配置过程 主节点 从节点 配置演示 主机修改my.ini配置文件(Windows) 从机修改my.cnf配置文件(Linux) 因为修改过配置文件,主机和从机都需要重启mysql...为当前节点设置一个全局唯一server_id。 创建有复制权限用户账号 REPLIACTION SLAVE ,REPLIATION CLIENT。 从节点 启动中继日志。...为当前节点设置一个全局唯一server_id。 使用有复制权限用户账号连接至主节点,并启动复制线程。...---- 配置演示 环境: 主机: windows , mysql 5.7 ip:192.168.14.165 从机: Linux, mysql 5.7 , ip: 192.168.14.167 主从都配置在

    48510

    mysql主从同步

    mysql主从配置流程大体如图: 1)master会将变动记录到二进制日志里面; 2)master有一个I/O线程将二进制日志发送到slave; slave有一个I/O线程把master发送二进制写入到...relay日志里面; 4)slave有一个SQL线程,按照relay日志处理slave数据; 二.操作 准备两台装好mysql服务器(我在此用docker模拟了两台机器) 环境 mysql版本 ip...=utf8 #启动主库容器(挂载外部目录,端口映射成33307,密码设置为123456) docker run -di -v /home/mysql/data/:/var/lib/mysql -v /...-e MYSQL_ROOT_PASSWORD=123456 mysql:5.7 #启动从库容器(挂载外部目录,端口映射成33306,密码设置为123456) docker run -di -v /home...主服务器IP地址', master_user='之前在MySQL主服务器上面创建用户名', master_password='之前创建密码', master_log_file='MySQL主服务器状态中二进制文件名

    1.2K10

    Mysql主从同步

    概念 主从同步:其实主从同步和Redis系列讲到主从同步比较类似,在多个服务器部署Mysql服务,将其中一台Mysql服务设置为主数据库,其他Mysql服务设置为从数据库,然后主从同步保证主从数据库数据一致性...上成功安装Mysql服务后,接下来进入正题,部署主从同步,实现主从数据库数据复制,不过需要注意一点:在进行主从复制时,所有需要复制数据数据表所有更新操作必须在主数据库中进行,否则可能导致主数据库表更新和从数据库表更新导致数据冲突出现不一致...我们已经准备好两个centos服务器,现在我准备采用一主一从方式实现主从同步: ip:49.235.28.88 /*设置成主数据库*/ ip:49.232.154.38 /*设置成从数据库*/ 主从同步配置思路...sync_binlog:设置同步二进制日志到磁盘频率。 binlog_format:mysql复制模式,有SBR、RBR、MBR三种可选模式。...主从同步实现之后我们就可以在这个基础上实现数据库读写分离,减轻主数据库负载。下一篇将着重介绍Mysql读写分离。

    1.6K30

    Mysql主从复制

    1、主从同步(主从复制原理。 答:主从同步核心是二进制日志文件binary log,对数据库所有的增加、修改、删除操作都会在日志表里面记录一下。...mysql主从复制是异步,串行化,有延迟,并不是实时。   第一步,master主节点将改变数据记录在本地二进制日志中binary log,该过程称为二进制日志事件。   ...7 log-error="D:/program/mysql/mysql-error" 8 # 主从同步时候忽略数据库 9 binlog-ignore-db=mysql 10 # 可选参数,指定主从同步时候...0 rows affected (0.00 sec) 7 8 mysql> 9 mysql> 查看主数据库状态,每次在做主从同步前,需要观察主机状态最新值,需要记住File、Position...6 # 配置主从同步数据库名称 7 replicate-do-db=test ?

    1.2K30

    mysqL主从架构

    port=3306 # 设置mysql安装目录 basedir=/usr/local/mysql # 设置mysql数据库数据存放目录 datadir=/usr/local/mysql/mysql-files...端口 port=3306 # 设置mysql安装目录 basedir=/usr/local/mysql # 设置mysql数据库数据存放目录 datadir=/usr/local/mysql/mysql-files...库中应用日志,保证主从数据库同步一致; 2、read_only=1设置只读模式, 限定是普通用户进行数据修改操作,但不会限定具有super权限用户数据修改操作。...另外 如果要想连super权限用户写操作也禁止,就使用"flush tables with read lock;",这样设置也会阻止主从同步复制! ​...我们也可以扩展出互为主从互主集群甚至是环形主从集群,实现MySQL多活部署。 ​

    2K10

    Mysql主从|笔记

    为什么要做主从复制1、在业务复杂系统中,有这么一个情景,有一句sql语句需要锁表,导致暂时不能使用读服务,那么就很影响运行中业务,使用主从复制,让主库负责写,从库负责读,这样,即使主库出现了锁表情景...业务量越来越大,I/O访问频率过高,单机无法满足,此时做多库存储,降低磁盘I/O访问频率,提高单个机器I/O性能原理 binlog(主库中保存所有更新事件日志二进制文件) 主从复制基础是主库记录数据库所有变更记录到...mysql主从复制是一个异步复制过程,主库发送更新事件到从库,从库读取更新记录,并执行更新记录,使得从库内容与主库保持一致。...可以知道,对于每一个主从复制连接,都有三个线程(binlog输出线程、从库I/O线程、从库SQL线程)。...Mysql关闭主从主服务器reset master;重启mysql从服务器stop slave; reset slave all;重启mysql

    1.6K30
    领券