当前位置: 首页 > article >正文

mysql+keepalived

文章目录

    • 一、master1
      • 创建目录
      • 写入配置文件
      • 启动master1
      • 创建 `slave` 用户并授权
      • 获取主节点当前 `binary log` 文件名和位置position
    • 二、master2
      • 创建目录
      • 写入配置文件
      • 启动master2
      • 创建 `slave` 用户并授权
      • 获取主节点当前 `binary log` 文件名和位置position
    • 三、配置主主复制
      • Master1
      • Master2
    • 四、建库验证
    • 五、数据库备份
      • master1
      • master2
    • 六、安装keepalived
      • master1的 keepalived 配置文件
        • mysql检测脚本
      • master2的 keepalived 配置文件
        • mysql检测脚本

一、master1

创建目录

mkdir /var/lib/mysql /var/lib/mysql/data

写入配置文件

innodb_buffer_pool_size (建议设置为物理内存的 60%~80%(专用数据库服务器,且只跑 MySQL 时,例如,服务器有 64GB 内存,建议设置为 40~50GB,如果服务器还跑其他服务,要适当减少,避免 OOM)

max_connections=500

innodb_buffer_pool_size=8G

vim /var/lib/mysql/my.cnf
[mysqld]
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
datadir         = /var/lib/mysql
secure-file-priv= NULL
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# 服务端默认utf8编码
character-set-server=utf8mb4
# 默认存储引擎
default-storage-engine=INNODB# 主主配置 
log-bin=binlog
server-id=1 # 另一台写2
gtid-mode=on
enforce-gtid-consistency=on
log-slave-updates=on
expire_logs_days=14
auto_increment_increment=2
auto_increment_offset=1    # 另一台写2
binlog_format=ROW# Compatible with versions before 8.0
default_authentication_plugin=mysql_native_password
skip-host-cache
skip-name-resolve[client]
#设置客户端编码
default-character-set=utf8mb4
[mysql]
# 设置mysql客户端默认编码
default-character-set=utf8mb4# Custom config should go here
!includedir /etc/mysql/conf.d/

启动master1

docker run --name mysql_master1 --restart=always \
-p 3306:3306 \
-v /var/lib/mysql/my.cnf:/etc/mysql/my.cnf \
-v /var/lib/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=qwer1234 \
-d docker.cloud-sea.top/mysql:8.0

创建 slave 用户并授权

# 进入数据库
docker exec -it mysql_master1 bash
mysql -uroot -pqwer1234
# 创建用户授权
CREATE USER 'slave'@'%' IDENTIFIED WITH mysql_native_password BY 'slave';
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%';
flush privileges;

获取主节点当前 binary log 文件名和位置position

mysql>  SHOW MASTER STATUS;
+---------------+----------+--------------+------------------+------------------------------------------+
| File          | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set                        |
+---------------+----------+--------------+------------------+------------------------------------------+
| binlog.000003 |      868 |              |                  | 1b009ef8-a67f-11ea-8c9a-0242ac110002:1-8 |
+---------------+----------+--------------+------------------+------------------------------------------+
1 row in set (0.00 sec)

二、master2

创建目录

mkdir /var/lib/mysql /var/lib/mysql/data
http://www.lryc.cn/news/2403200.html

相关文章:

  • Profinet 协议 IO-Link 主站网关(三格电子)
  • Ubuntu22.04 安装 Miniconda3
  • Hubstudio浏览器如何使用Loongproxy?
  • 硬件工程师笔记——555定时器应用Multisim电路仿真实验汇总
  • ComfyUI 对图片进行放大的不同方法
  • Elasticsearch最新入门教程
  • 第16节 Node.js 文件系统
  • 【Linux网络篇】:从HTTP到HTTPS协议---加密原理升级与安全机制的全面解析
  • jenkins结合gitlab实现CI
  • SQL进阶之旅 Day 17:大数据量查询优化策略
  • 字符串 金额转换
  • 浅聊一下,大模型应用架构 | 工程研发的算法修养系列(二)
  • 装载机防撞系统:智能守护,筑牢作业现场人员安全防线
  • 上门服务小程序订单系统框架设计
  • 11.MySQL事务管理详解
  • 前端实现视频/直播预览
  • React源码阅读-fiber核心构建原理
  • 视频监控管理平台EasyCVR与V4分析网关对接后告警照片的清理优化方案
  • 基于 BGE 模型与 Flask 的智能问答系统开发实践
  • 机器学习:决策树和剪枝
  • vscode自定义主题语法及流程
  • vue中加载Cesium地图(天地图、高德地图)
  • SpringBoot整合RocketMQ与客户端注意事项
  • Github 2025-06-04 C开源项目日报 Top7
  • 大二下期末
  • LeetCode 热题 100 74. 搜索二维矩阵
  • 解决 VSCode 中无法识别 Node.js 的问题
  • Mysql的卸载与安装
  • ES101系列09 | 运维、监控与性能优化
  • Java常用的判空方法