MYSQL主从(主备)部署

这篇具有很好参考价值的文章主要介绍了MYSQL主从(主备)部署。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、环境准备

1、主机规划,示例环境用配置1主2从

类型 服务器IP 数据库版本
Master 192.168.100.1 Mysql:5.7.27
Save1 192.168.100.2 Mysql:5.7.27
Save2 192.168.100.3 Mysql:5.7.27

2、服务器环境准备

2.1 安装docker

在3台服务器上安装docker,安装过程跳过

2.2 mysql镜像上传

......

二、安装

1、创建数据和配置文件挂载目录(3台服务器都需要操作)

$ mkdir -p /data/containers/mysql/data

$ mkdir -p /data/containers/mysql/conf

$ chmod -R 755 /data/containers/mysql

2、将配置文件my.cnf上传到/data/containers/mysql/conf目录下(3台服务器都需要操作)

$cat my.cnf

-------------------------------

[mysqld]

server_id = 1

# 主从复制设置

log-bin = mysql-bin # 开启mysql binlog功能

binlog_format = ROW # binlog记录内容的方式,记录被操作的每一行

binlog_row_image = minimal # 对于binlog_format = ROW模式时,减少记录日志的内容,只记录受影响的列

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

default-time_zone = '+8:00' #时区设置

lower_case_table_names=1 # 是否对sql语句大小写敏感,1表示不敏感

max_connections=10240 # 最大连接数

character-set-server=utf8mb4 # 数据库默认字符集,主流字符集支持一些特殊表情符号(特殊表情符占用4个字节)

[client]

default-character-set=utf8

!includedir /etc/mysql/conf.d/

!includedir /etc/mysql/mysql.conf.d/

---------------------------------

注意:以上配置仅供参考;实际配置需要根据项目需求进行调整

3、修改从服务器save1和save2的server-id配置

3.1 在save1服务器上执行命令

$ sed -i s/"server-id = 1"/"server-id = 2"/g /data/containers/mysql/conf/my.cnf

3.2 在save2服务器上执行命令

$ sed -i s/"server-id = 1"/"server-id = 3"/g /data/containers/mysql/conf/my.cnf

4、启动数据库

4.1 启动master数据库,在master服务器上执行命令

$ docker run -p 3306:3306 --name mysql_master --restart=always \

-v /data/containers/mysql/data:/var/lib/mysql \

-v /data/containers/mysql/conf/my.cnf:/etc/mysql/my.cnf \

-e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.27

4.2 启动save1数据库,在save1服务器上执行命令

$ docker run -p 3306:3306 --name mysql_save1 --restart=always \

-v /data/containers/mysql/data:/var/lib/mysql \

-v /data/containers/mysql/conf/my.cnf:/etc/mysql/my.cnf \

-e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.27

4.3 启动save2数据库,在save2服务器上执行命令

$ docker run -p 3306:3306 --name mysql_save2 --restart=always \

-v /data/mysql_containers/data:/var/lib/mysql \

-v /data/containers/mysql/conf/my.cnf:/etc/mysql/my.cnf \

-e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.27

至此3台服务器已经启动完成,数据库账号:root 密码 :123456

三、 配置主从

1、master服务器配置

1.1 登录数据库

$ docker exec -it mysql_master bash

$ mysql -uroot -p

输入密码123456登录数据库

1.2 master数据库授权同步账户(在数据库内操作)

$ GRANT REPLICATION SLAVE ON *.* TO 'save'@'%' IDENTIFIED BY '123456';

$ FLUSH PRIVILEGES;

备注: %是指定用户登录IP白名单,‘%’表示全部IP;具体可以根据现场环境设置。

1.3 清空Master日志,查看数据库记录二进制开始文件位置(在数据库内部操作)

$ RESET MASTER;

$ SHOW MASTER STATUS;

mysql主备搭建,mysql,数据库,mysql,服务器

2、save1服务器配置

2.1 登录数据库

$ docker exec -it mysql_save1 bash

$ mysql -uroot -p

输入密码123456登录数据库

2.2 配置同步(在数据库内操作)

$ CHANGE MASTER TO MASTER_HOST='192.168.100.1' , MASTER_PORT=3306 , MASTER_USER='save' , MASTER_PASSWORD='123456' , MASTER_LOG_FILE='mysql-bin.000001' , MASTER_LOG_POS=328;

备注:MASTER_LOG_POS的数值是1.3步骤获取

3、Save2服务器配置

3.1 登录数据库

$ docker exec -it mysql_save2 bash

$ mysql -uroot -p

输入密码123456登录数据库

3.2 配置同步(在数据库内操作)

$ CHANGE MASTER TO MASTER_HOST='192.168.100.1' , MASTER_PORT=3306 , MASTER_USER='save' , MASTER_PASSWORD='123456' , MASTER_LOG_FILE='mysql-bin.000001' , MASTER_LOG_POS=328;

备注:MASTER_LOG_POS的数值是1.3步骤获取

4、启动同步

分别在save1和save2数据库上执行

$ START SLAVE;

5、查看master 配置状态(在数据库内部操作)

$ show processlist\G

mysql主备搭建,mysql,数据库,mysql,服务器

看到上面的Command: Binlog Dump说明配置成功!

6、查看save1和save2的主从配置状态(在数据库内部操作)

$ SHOW SLAVE STATUS\G;

mysql主备搭建,mysql,数据库,mysql,服务器

 出现2个YES表示配置正常

7、设置从库只读(在数据库内部操作)

$ set global read_only=1;

备注:只读设置对root用户无效文章来源地址https://www.toymoban.com/news/detail-736665.html

到了这里,关于MYSQL主从(主备)部署的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于docker搭建MySql主从数据库(详细步骤)

    在 Linux 中建立对应文件夹,用于存放MySql数据库相关,文件夹路径: /usr/local/software/mysql 。 在mysql文件下创建如下目录结构的文件:(3306为主数据库文件夹,笔者这里以对端口号来命名;3310为从数据库文件夹,3311同理,可依次往下) 上传 my.cnf 文件到 conf 文件夹下 以下是

    2024年02月09日
    浏览(54)
  • MySQL8.0+数据库GTID主从模式搭建

    参见: MySQL数据库8.0+版本部署安装-CSDN博客 部署环境[例]: 主库:192.168.179.153:3306 从库:192.168.179.154:3306 主从库开启GTID模式 // 主从库均修改,修改从库配置文件,在[mysqld]下添加如下配置 $ vim /etc/my.cnf gtid_mode = on enforce_gtid_consistency = on 需检查server-id配置,为主从架构中的所有

    2024年02月04日
    浏览(66)
  • Mysql数据库搭建互为主从mysqlB的配置文件

    [client] port=3306 socket=/var/lib/mysql/mysql.sock [mysqld] port=3306 socket=/var/lib/mysql/mysql.sock datadir=/var/lib/mysql pid-file=/var/lib/mysql/mysql.pid log-error=/var/log/mysql.err server-id=2 #偶数ID auto_increment_offset=2 auto_increment_increment=2 #打开二进制功能,MASTER主服务器必须打开此项 log-bin=mysql-bin binlog-format=MIXED

    2024年02月15日
    浏览(50)
  • 第90讲:MySQL数据库主从复制集群原理概念以及搭建流程

    1.1.什么是主从复制集群 主从复制是指将主数据库的 DDL 和 DML 操作通过二进制日志传到从库服务器中,然后在从库上对这些日志重新执行(也叫重做),从而使得从库和主库的数据保持同步。 MySQL支持一台主库同时向多台从库进行复制, 从库同时也可以作为其他从服务器的主

    2024年01月20日
    浏览(56)
  • MYSQL主从(主备)部署

    1、主机规划,示例环境用配置1主2从 类型 服务器IP 数据库版本 Master 192.168.100.1 Mysql:5.7.27 Save1 192.168.100.2 Mysql:5.7.27 Save2 192.168.100.3 Mysql:5.7.27 2、服务器环境准备 2.1 安装docker 在3台服务器上安装docker,安装过程跳过 2.2 mysql镜像上传 ...... 1、创建数据和配置文件挂载目录(3台服务

    2024年02月06日
    浏览(41)
  • [Kubernetes]8. K8s使用Helm部署mysql集群(主从数据库集群)

    上一节讲解了K8s包管理工具Helm、使用Helm部署mongodb集群(主从数据库集群),这里来看看 K8s使用Helm部署mysql集群(主从数据库集群) 无本地存储: 当重启的时候,数据库消失 (1).打开官网的应用中心 打开应用中心,搜索mysql (2).安装  1).添加repo仓库 2).安装 具体命令如下:  3).自动生成

    2024年01月21日
    浏览(81)
  • MySQL数据库——主从复制

    在实际的生产环境中,对数据库的读和写都在同一个数据库服务器中,是不能满足实际需求的。无论是在安全性、高可用性还是高并发等各个方面都是完全不能满足实际需求的。因此,通过主从复制的方式来同步数据,再通过读写分离来提升数据库的并发负载能力。有点类似

    2024年02月11日
    浏览(99)
  • MySQL数据库实现主从同步

    安装MySQL数据库8.0.32 今天来学习数据库主从同步的原理及过程,数据库主要是用来存储WEB数据,在企业当中是极为重要的,下面一起来看下。 MySQL主从复制在中小企业,大型企业中广泛使用,MySQL主从复制的目的是实现数据库冗余备份,将master数据库数据定时同步到slave数据库

    2024年02月02日
    浏览(59)
  • MySQL数据库 主从复制与读写分离

    读写分离,基本的原理是让主数据库处理事务性增、改、删操作(INSERT、UPDATE、DELETE),而从数据库处理SELECT查询操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库。 因为数据库的“写”(写10000条数据可能要3分钟)操作是比较耗时的。 但是数据库

    2024年02月10日
    浏览(48)
  • 【MySQL数据库】主从复制与读写分离

    读写分离,基本的原理是让主数据库处理事务性增、改、删操作(INSERT、UPDATE、DELETE),而从数据库处理SELECT查询操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库。 因为数据库的“写”(写10000条数据可能要3分钟)操作是比较耗时的。 但是数据库

    2024年02月11日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包