首页 > 数据库 >MySQL 集群部署

MySQL 集群部署

时间:2024-10-22 17:23:20浏览次数:1  
标签:slave 部署 MySQL 192.168 master mysql var 集群 mysqld

MySQL 集群部署

环境

集群模式:双主集群

服务器:192.168.93.100、192.168.93.101

版本:mysql-5.7.44

配置

192.168.93.101

my.cnf

[mysqld]
skip-host-cache
skip-name-resolve
# 修改数据磁盘 data 目录
datadir=/var/lib/mysql
socket=/var/run/mysqld/mysqld.sock
secure-file-priv=/var/lib/mysql-files
user=mysql
symbolic-links=0
pid-file=/var/run/mysqld/mysqld.pid
server-id=2
character-set-server=UTF8MB4
lower_case_table_names=1
default-time_zone='+8:00'
# 指定不需要同步的数据库名称
binlog-ignore-db=mysql
# 开启二进制日志功能
log_bin=/var/lib/mysql/itpuxdb-binlog
# 设置二进制日志使用内存大小(事务)
binlog_cache_size=1M
# 设置使用的二进制日志格式(mixed,statement,row)
binlog_format=mixed
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
# 二进制日志过期清理时间,默认值 0,表示不自动清理
expire_logs_days=7
# 跳过主从复制中遇到的所有错误或指定类型的错误,避免 slave 端复制中断
# 如:1062 错误是指一些主键重复,1032 错误是因为主从数据库数据不一致
slave_skip_errors=1062
# 设置步进值
auto-increment-offset=1
auto-increment-increment=2
[client]
socket=/var/run/mysqld/mysqld.sock

192.168.93.100

my.cnf

[mysqld]
skip-host-cache
skip-name-resolve
# 修改数据磁盘 data 目录
datadir=/var/lib/mysql
socket=/var/run/mysqld/mysqld.sock
secure-file-priv=/var/lib/mysql-files
user=mysql
symbolic-links=0
pid-file=/var/run/mysqld/mysqld.pid
server-id=1
character-set-server=UTF8MB4
lower_case_table_names=1
default-time_zone='+8:00'
# 指定不需要同步的数据库名称
binlog-ignore-db=mysql
# 开启二进制日志功能
log_bin=/var/lib/mysql/itpuxdb-binlog
# 设置二进制日志使用内存大小(事务)
binlog_cache_size=1M
# 设置使用的二进制日志格式(mixed,statement,row)
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'
# 二进制日志过期清理时间,默认值 0,表示不自动清理
expire_logs_days=7
# 跳过主从复制中遇到的所有错误或指定类型的错误,避免 slave 端复制中断
# 如:1062 错误是指一些主键重复,1032 错误是因为主从数据库数据不一致
slave_skip_errors=1062
# 设置步进值
auto-increment-offset=2
auto-increment-increment=2
[client]
socket=/var/run/mysqld/mysqld.sock

启动 MySQL 容器

192.168.93.100、192.168.93.101

docker run --name mysql1 \
-e MYSQL_ROOT_PASSWORD=123456 \
-v /data/mysql/data:/var/lib/mysql \
-v /data/mysql/log:/var/log/mysql \
-v /data/mysql/conf/my.cnf:/etc/mysql/my.cnf \
-p 13306:3306 -d mysql:5.7.44

配置主从关系

192.168.93.100

create user 'slave'@'%' identified by 'root';
grant replication slave,replication client on *.* to 'slave'@'%';

# 查看主节点 1 的日志文件名称和偏移量用于后面从节点配置使用
show master status;

mysql> create user 'slave'@'%' identified by 'root';
Query OK, 0 rows affected (0.00 sec)

mysql> grant replication slave,replication client on *.* to 'slave'@'%';
Query OK, 0 rows affected (0.01 sec)

mysql> show master status;
+-----------------------+----------+--------------+------------------+-------------------+
| File                  | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+-----------------------+----------+--------------+------------------+-------------------+
| itpuxdb-binlog.000004 |      627 |              | mysql            |                   |
+-----------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

192.168.93.101

change master to master_host='192.168.93.100',master_user='slave',master_password='root',master_port=13306,master_log_file='itpuxdb-binlog.000004',master_log_pos=627,master_connect_retry=30,master_retry_count=3;

# 开启主从复制
start slave;

# 查看 slave 状态
show slave status\G;

192.168.93.101

create user 'slave'@'%' identified by 'root';
grant replication slave,replication client on *.* to 'slave'@'%';

# 查看主节点 1 的日志文件名称和偏移量用于后面从节点配置使用
show master status;

mysql> create user 'slave'@'%' identified by 'root';
Query OK, 0 rows affected (0.00 sec)

mysql> grant replication slave,replication client on *.* to 'slave'@'%';
Query OK, 0 rows affected (0.01 sec)

mysql> show master status;
+-----------------------+----------+--------------+------------------+-------------------+
| File                  | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+-----------------------+----------+--------------+------------------+-------------------+
| itpuxdb-binlog.000004 |      627 |              | mysql            |                   |
+-----------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

192.168.93.100

change master to master_host='192.168.93.101',master_user='slave',master_password='root',master_port=13306,master_log_file='itpuxdb-binlog.000004',master_log_pos=627,master_connect_retry=30,master_retry_count=3;

# 开启主从复制
start slave;

# 查看 slave 状态
show slave status\G;

注意:从节点的 master_log_file 和 master_log_pos 要与主节点一致

标签:slave,部署,MySQL,192.168,master,mysql,var,集群,mysqld
From: https://www.cnblogs.com/wndexx/p/18493330

相关文章

  • Redis的持久化存储和集群管理操作
    Redis的持久化存储和集群一、引言Redis是一个开源的内存数据结构存储系统,被广泛应用于缓存、消息队列、排行榜等场景。然而,由于数据存储在内存中,一旦服务器重启或出现故障,数据就会丢失。为了解决这个问题,Redis提供了两种持久化存储方式:RDB(RedisDatabase)和AOF(AppendOnly......
  • MySQL的 主从同步
    1.概述MySQL主从同步(Replication)是一种数据备份和灾难恢复的解决方案,同时也可以用于负载均衡和读写分离。通过主从同步,可以将一个MySQL数据库服务器(主服务器)的数据实时复制到另一台或多台MySQL服务器(从服务器)。本文档将介绍如何配置MySQL主从同步,并提供示例操作。2.......
  • django+mysql怎么开局
    后端开局:django+mysql思路是这篇:vue3+django+mysql实现一个简单的前后端分离的小案例-CSDN博客首先,用pycharm创建的时候我选的是anaconda3虚拟环境然后创建项目的时候选择django项目,会帮你创建好基础的东西。然后你需要在终端使用命令来创建apps文件夹。(看这篇:django创建......
  • 火锅店管理系统/火锅店管理软件/餐饮管理系统/火锅店收银系统/餐厅管理软件/火锅店ERP
    博主介绍......
  • 小型诊疗预约平台/小型诊疗/预约平台/医疗预约/诊所预约/医生预约/网上预约/医疗服务/
    博主介绍......
  • 海量大模型如何一键部署上云?函数计算 x ModelScope 社区给出答案
    作者:魔搭官方大模型在过去一年多时间里的一路技术狂奔,深刻的改变了今天模型和AI的整体应用生态,也给开发者提供纷繁复杂的模型选择。在多样化大模型的背后,OpenAI得益于在领域的先发优势,其API接口今天也成为了业界的一个事实标准。许多开源工具和框架,包括LlamaIndex,LangChain......
  • MySQL基于gtid同步,新增slave节点
    环境说明:当前MySQL集群为一主一从,新增加Slave节点,将架构变更为一主两从,集群已经运行了很长时间,主节点得binlog早就被purged,启动slave得时候会报错,1236、1062等操作步骤:备份master数据,从节点resetmaster,导入数据1.备份主节点数据:在进行任何操作之前,首先需要对主节点的数据进......
  • docker入门(三)自定义部署docker镜像
    docker系列d​​​​​​​docker入门(一)安装及镜像命令_docker国内源-CSDN博客文章浏览阅读1.5k次,点赞44次,收藏12次。注意:是强依赖Linux环境,即便在windows上部署Docker其本质也都是先安装一个虚拟机,然后在虚拟出来的Linux上再安装并运行Docker。DockerCompose是一个用于定义......
  • mysql建议单表2000万条数据的由来
    Mysql在建表之初就要考虑到他的存储量和性能问题,所以一般Mysql数据库建议单表最大两千万,但是为啥是两千万呢这里我们解释一下,知其然还要知其所以然!这一块的知识解释起来会涉及一点存储引型的相关知识了这里给提供一个基本概念,但是了解完之后会对InnonDB引型会有一定的了解数据......
  • 保姆级 | MySQL的安装配置教程(非常详细)
    一、下载Mysql从官网下载MySQL,这里我选用的是Mysql8.0.34版本   二、安装Mysql下载完成后直接双击进行安装,打开后的页面如下所示:“DeveloperDefault”是开发者默认“Serveronly”仅作为服务器安装“Clientonly”仅作为客户端安装“Full”是完整安装“Custom”......