广告
返回顶部
首页 > 资讯 > 数据库 >MYSQL主从库搭建(原创)
  • 801
分享到

MYSQL主从库搭建(原创)

2024-04-02 19:04:59 801人浏览 独家记忆
摘要

Mysql主从库搭建(原创) 一、 单主库配置1.1环境说明本节讲述的环境为一个主库,两个从库,具体环境如下。1.1.1linux versionRed Hat

                     Mysql主从库搭建(原创)

一、 单主库配置
1.1环境说明
本节讲述的环境为一个主库,两个从库,具体环境如下。
1.1.1linux version
Red Hat Enterprise Linux Server release 6.4 (SantiaGo)
1.1.2 mysql version
5.1.73
1.1.3 master 服务器ip 192.168.212.134, slaver 服务器IP 192.168.212.142 ,slaver 服务器IP 192.168.212.143

1.2 master 服务器配置
1.2.1 创建同步账号
mysql> grant replication slave on . to 'rep'@'192.168.212.%' identified by 'rep';
mysql> flush privileges;
说明: . 代表所有的数据库的所有表,也可指定对某个数据库的所有表进行同步,例如testdb.*
192.168.212.%代表对192.168.212网段都可以连接master 数据库
1.2.2 打开master 数据库的binlog功能
编辑/etc/my.cng
在mysqld模块中添加bin-log参数。例如bin-log=master
重启数据库
#service mysqld restart
1.2.3 备份数据库
 为了保持一致性,检查binlog。
mysql>show master status;
当前的语句节点在mysqlbin.000002 ,位置在106,这个在slaver数据库中恢复起始位置
mysql>show master logs;

 备份全库
为了保持数据一致,对于非innodb的库表需要库进行备份,可以通过mysql命令mysql>flush table with read lock;锁数据库(unlock tables;解锁),此命令锁表的时间是通过系统参数wait_time和interactive_timeout控制,缺省时间是28800秒。如果此命令执行窗口关闭,锁表也失效。
也可以在mysqldump中加参数-x锁表,如下命令# mysqldump -uroot -B -A -x --events –master-data=2|gzip >/root/mysql_all.gz
对于innodb存储引擎的表可以在mysqldump中加参数--single-transaction在备份时快照来保持数据一致,如下命令# mysqldump -uroot -B -A --single-transaction --events --master-data=2|gzip >/root/mysql_all.gz
将备份文件传至slaver 服务器,如下:
Scp /root/mysql_all.gz root@192.168.212.141:/home/mysql/

1.3 Slaver 服务器配置
本部分只对192.168.212.142进行配置,192.168.212.143配置与此相同。
1.3.1 将备份数据导入数据库,如下:
$gzip –dv /root/mysql_all.gz
$mysql –uroot </root/mysql_all
1.3.2 设置恢复点
Mysql>change master to
master_host='192.168.212.134',
master_port=3306,
master_user='rep',
master_passWord='rep',
master_log_file='mysqlbin.000002',
master_log_pos=106;
说明:
把备份文件中change master 命令master_log_file,master_log_pos值填入以上命令对应位置。如果备份时设置--master-data=1(2会把增量位置信息注释),增量位置信息会写入备份文件,备份文件导入从数据库时就会把位置信息一起导入,这样在从库执行change master 时就不再需要写master_log_file和master_log_pos。
1.3.3 启动同步
Mysql>start slave;
1.3.4 检查主从状态
Mysql>show slave status\G;
mysql> show slave status\G;
1. row
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.212.134
Master_User: rep
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysqlbin.000004
Read_Master_Log_Pos: 106
Relay_Log_File: mysqld-relay-bin.000004
Relay_Log_Pos: 250
Relay_Master_Log_File: mysqlbin.000004
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 106
Relay_Log_Space: 550
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
1 row in set (0.00 sec)
ERROR:
No query specified
说明:如果Slave_IO_Running和 Slave_SQL_Running都是yes 说明开始同步,Seconds_Behind_Master说明从库落后主库的时间(秒)。

二、多主库配置
多主库模式包含超过一个以上的主库,主库间数据库互相同步。Master1、Master2 分别代表两个主库。
2.1 参数配置
Mater1:
auto_increment_offset=1 #解决主键自增变量冲突.自增初始位置,此例为1
auto_increment_increment=2 #解决主键自增变量冲突.自增间隔为2,例如1、3、5
log_slave_updates
Mater2:
auto_increment_offset=2 #解决主键自增变量冲突。自增初始位置,此例为2
auto_increment_increment=2 #解决主键自增变量冲突。自增间隔为2,例如2、4、6
log_slave_updates

2.2 把master1的数据备份,导入mater2数据库
参照单主库的备份与导入章节。

2.3 master1启动同步
Mysql> change master to
master_host='192.168.212.141',
master_port=3306,
master_user='rep',
master_password='rep';
mysql>start slave;

2.4 master2启动同步
Mysql> change master to
master_host='192.168.212.141',
master_port=3306,
master_user='rep',
master_password='rep';
mysql>start slave;

三、Binlog日志的自动删除
可以通过系统参数expire_logs_days配置Binlog日志保留天数。此参数默认值为0,
例如expire_logs_days=10 ,表示保留10天。

四、读写分离
为了防止应用对从库进行DML操作而参数主从不一致,可以在从库添加read-only参数,使从库只读(super,或all privileges权限用户不受此限制)。

五、从库切换为新主库
5.1选择同步最新的从库为新主库。
5.1.1 查看各从库如果如下红框显示说明同步一致。

5.1.2 查看两台从库的master.info文件,对比不同从库红色部分判断是否最新,选择logbin file和pos最大的为最新,此例为logbinfile:000006,pos:106。
#cat master.info
15
mysqlbin.000006
106
192.168.212.134
rep
rep
3306
60
0
5.2 把所有从库relaylog内容都导入库中。
在每个从库执行stop slave io_thread;show processlist\G;直到看到Has read all relay log;表示从库导入完毕。
mysql> stop slave io_thread;
mysql> show processlist\G

5.3 新主库操作

          新主库的检查

 在新主机的数据目录下,删除master.info,relay-log.info 两个文件。
 确认mysql.user表满足应用和其它从库的连接需求。
 确认去掉了read-only、log_slave_updates系统参数。
 确认打开了binlog功能。
 检查原主库是否还有没同步到新主库的binlog,不没同步到新从库的binlog通过mysqlbinlog工具生成可读命令文档,导入新主库。

在同步最新的从库上执行如下语句,把此从库改成新主库,语句如下。
Mysql>stop slave; --停止slave服务
Mysql>reset master; --进行主库binlog初始化工作
#service mysqld restart 重启数据库
5.4 其它从库操作
Mysql>stop slave;
Mysql>change master to master host=’192.168.212.142’; --指向新主库
Mysql>start slave;
Mysql>show slave status\G;

您可能感兴趣的文档:

--结束END--

本文标题: MYSQL主从库搭建(原创)

本文链接: https://www.lsjlt.com/news/43930.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MYSQL主从库搭建(原创)
    MYSQL主从库搭建(原创) 一、 单主库配置1.1环境说明本节讲述的环境为一个主库,两个从库,具体环境如下。1.1.1Linux versionRed Hat ...
    99+
    2022-10-18
  • Mysql主从数据库搭建(一主两从)
    目录 1、服务器规划 2、主从同步流程 3、主从搭建 3.1、master节点上配置文件修改 3.2、master节点创建同步用户和权限 3.3、slave1和slave2节点配置文件修改 3.4、slave1和slave2节点执行同步任...
    99+
    2023-08-31
    数据库 mysql 服务器
  • Mysql 主从搭建
                             Mysql  主...
    99+
    2022-10-18
  • MySQL 主从复制原理及搭建
    一.主从复制的工作过程:二.MySQL复制类型基于SQL语句的复制基于行的复制混合复制三.实验环境  OS:CentOS 6.5 x64  master:192.168.0.134&nb...
    99+
    2022-10-18
  • mysql5.7搭建主从库
    #MYSQL单节点的mysql远远不能满于生成,以防止生产服务器宕机,磁盘空间溢满等种种原因,需要有一个备用数据库, 这时候主从库是不错的选择,在是数据库集群中也起到了很大的作用 #MySQL 主从复制概念: MySQL 主从复制是指数据可...
    99+
    2015-09-14
    mysql5.7搭建主从库
  • docker创建MySQL镜像,搭建主从复制环境
    docker创建MySQL镜像,搭建主从复制环境 前言一、编写Dockerfile制作mysql镜像编写Dockerfile文件编写mysql_file文件:编写run.sh文件build M...
    99+
    2023-09-28
    centos linux docker
  • Mysql主从复制搭建
    1.mysql主库会把所有的写操作记录在binlog日志中,并且生成log dump线程,将binlog日志传给从库的I/O线程,从库生成两个线程,一个是I/O线程,另外一个是SQL线程。 主将更改操作记录到binlog里从将主的binlo...
    99+
    2020-09-28
    Mysql主从复制搭建
  • MYSQL主从环境搭建
    服务器:192.168.11.131 master192.168.11.132 slave服务器系统# cat /etc/redhat-release CentOS Linux release 7...
    99+
    2022-10-18
  • mysql主从搭建切换
    环境: 172.30.249.156 percona5.6.27 主机名:tr-mysql 跑着生产环境的应用的虚拟机 192.168.129.153 percona5...
    99+
    2022-10-18
  • MYSQL怎么搭建主从
    本篇内容主要讲解“MYSQL怎么搭建主从”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MYSQL怎么搭建主从”吧!1,在虚拟机上新建三个虚拟机,分别是vm4 &...
    99+
    2022-10-18
  • MySQL(多主一从)搭建
    拓扑图:实验环境:(三台虚拟机)server1(master1-178)、server2(master2-179)、server3(slave-175)Master1:(178)安装软件yum instal...
    99+
    2022-10-18
  • mysql搭建主从复制(一主一从,双主双从)
    主从复制原理 Mysql 中有一个binlog 二进制日志,这个日志会记录下所有修改了的SQL 语句,从服务器把主服务器上的binlog二进制日志在指定的位置开始复制主服务器所进行修改的语句到从服务器上执行一遍。 流程图 搭建一...
    99+
    2016-07-17
    mysql搭建主从复制(一主一从,双主双从)
  • Docker搭建Mysql主从复制
    Docker搭建Mysql主从复制 前言 相信我,看完这一篇,mysql主从复制能遇到的错误在我这里都遇到了,docker能遇到的错误在我这里也遇到了,包括centos的错误,看吧,都是成长 do...
    99+
    2023-09-24
    docker mysql 容器 Linux
  • MySQL主从搭建与配置
    MySQL主从(MySQL replication),主要用于MySQL的实时备份或者读写分离。在配置之前先做一下准备工作,配置两台MySQL服务器,如果你的机器不能同时跑两台Linux虚拟机,那么可以考虑...
    99+
    2022-10-18
  • linux搭建mysql主从服务
    网上找了N多资料,没有一个可以顺利成功的,郁闷,可能是水平有限吧...!本人经过不断的研究、测试,完整实现linux下启动两台Mysql,而且对mysql有了更深入的了解...废话不多说,走着! ...
    99+
    2022-10-18
  • MySQL基于GTID主从搭建
    目录一、用xtarbackup备份数据库1.1 优势1.2 安装1.3 使用1.3.1 普通备份1.3.2 tar备份1.3.3 xbstream备份1.3.4 恢复二、基于GTID做数据同步2.1 GTID的概念2.2...
    99+
    2022-08-26
  • 新环境搭建Mysql主从
    环境信息: 用途 IP OS Mysql 主 ...
    99+
    2022-10-18
  • MySQL 5.7 主从集群搭建
    IP功能Linux版本192.168.56.136MasterCentOS 7.9192.168.56.140SlaveCentOS 7.9 一、安装前的准备 1、卸载老版本 (1)查看是否安装mariadb(centos7默认安装) 命令...
    99+
    2023-09-16
    mysql 数据库 linux
  • mysql主主和主从的搭建方法
    这篇文章主要介绍“mysql主主和主从的搭建方法”,在日常操作中,相信很多人在mysql主主和主从的搭建方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”mysql主主和主从...
    99+
    2022-10-18
  • 主从搭建
    1.创建主从 1.1 前提条件主从MySQL都开启binlog,并且保证server-id唯一[mysqld]log-bin=mysql-binserver-id=10086 After making th...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作