灵感储存罐
首页自定义链接
首页自定义链接
  1. 环境搭建
  • START
  • 碎碎念
    • 2025.08 - 2025.10
    • 2023.01 - 2024.02
    • 2022.06 - 2022.12
  • 时光絮
    • 关于我-2025
    • 关于我-2022
    • 观影记录
  • slackjar
    • wiki-开发
      • 需求文档
      • 技术栈
      • 云服务资源
      • EasyCode
      • AI提示词
      • 资源图片
      • 服务器应用部署
    • foundation
      • external-外部系统
        • 随机一言
      • interface-账号
        • 用户登录
        • 获取指定用户角色列表
        • 获取用户详情
        • 退出登录
      • interface-三方
        • 随机一言
        • 查询IP对应城市
      • interface-配置
        • 配置增删改
        • 分组获取所有配置
        • 根据分类查询配置
        • 根据分类和配置键查询配置
      • interface-文件
        • 常规上传文件
        • 下载文件为byte字节
        • 批量删除文件
      • interface-AI
        • 基础对话
        • 流式对话
      • interface-SSL
        • 上传SSL证书
        • 根据域名查询SSL证书
      • interface-日志
        • 检索操作日志
        • 根据ID批量删除操作日志
        • 根据描述和时间区间删除操作日志
        • 聚合统计操作日志标签
      • interface-画板
        • 保存或更新画布数据
        • 获取画布详情
        • 获取当前用户的画布列表
        • 删除单个画布
      • interface-资源
        • 查询主服务器资源
      • SocketIO
        • 系统SocketIO消息推送/监听
    • node
      • interface-分组
        • 创建笔记分组
        • 查询笔记分组及目录
      • interface-笔记
        • 新增笔记
        • 修改笔记
        • 查询笔记详情
      • interface-标签
        • 创建标签
        • 查询标签列表
  • 文字抒写
  • 技术文章
    • 环境搭建
      • 安装Docker
      • MySQL主从安装
      • MongoDB安装
      • 中间件安装使用
      • Jenkins安装使用
      • Cloudreve云盘
      • Whistle代理工具
    • 学习笔记
      • hzero&O2学习笔记
  1. 环境搭建

MySQL主从安装

1. 创建master#

docker会自动拉取mysql镜像
要检查服务器的相应端口有没有开放

2. 修改master配置文件#

由于容器内的/etc/mysql/my.cnf 挂载时报错,所以去掉下面这一句
-v /home/docker/mysql8-master/my.cnf:/etc/mysql/my.cnf \
但是我们想要修改只能直接修改容器内的my.cnf
而容器内又没有vim或vi命令,只能采用复制的方式修改文件
拷贝容器内文件到主机:
使用如下命令修改文件
修改原文件如下:
再执行命令拷贝到容器内:
重启容器:
尝试远程连接一下,看是否报错:
其他配置解释
Master节点配置
Slave节点配置
binlog 日志三种格式
Statement(Statement-Based Replication,SBR):每一条会修改数据的 SQL 都会记录在 binlog 中。
Row(Row-Based Replication,RBR):不记录 SQL 语句上下文信息,仅保存哪条记录被修改。
Mixed(Mixed-Based Replication,MBR):Statement 和 Row 的混合体。

3. 创建slave#

4. 修改slave配置文件#

同上,不在赘述,只表达命令
若连接时报错 1129 (HY000): Host '' is blocked because of many connection errors;
出错原因是:一段时间内,重复多次连接msyql服务器,连接到一半就不连接了,并且没有登录成功
简述mysql连接流程:
根据mysql连接协议,发起握手,在网络层面里
mysql服务器在内存上常见客户端连接的数据结构
连接认证,检查用户名,密码正确不
监听端口,等待命令
出现这个错误的原因,可能就是在连接到第2或3步骤的时候,断开了连接,
解决方法是:
在服务器进入mysql 输入 FLUSH HOSTS
或者执行 mysqladmin flush-hosts命令

5. master操作#

(1) 创建用户并授权#

进入master:
创建 slave 用户:
授权:
查看授权状态:

(2) 锁表#

全局锁表操作,防止position状态码改变:

(3) 查看主服务器状态#

注:Position:是日志文件复制点,需要用在从服务器的配置中需要使用

6. slave操作#

(1) 配置主从#

进入slave:
创建 slave 用户:

(2) 开启服务#

(3) 查看从库状态#

显示Slave_IO_Running 为 yes 则已经配置成功。

(4) 若产生异常#

下面不远处可以看到
出现这个问题是因为mysql8之前的加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password, 解决问题方法有两种,一种是升级可视化管理工具的驱动,一种是把mysql用户登录密码加密规则还原成mysql_native_password。
第二种解决方法,在主库中执行:
从库继续执行
显示Slave_IO_Running 为 yes 则已经连接成功。

7. master操作#

主库解锁表
测试
在主库里新建数据库,从库里会同步展示
在从库里新建数据库,主库没有反应
以后的写操作都在主库,读操作都在从库
修改于 2025-08-10 17:18:12
上一页
安装Docker
下一页
MongoDB安装
Built with