IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Docker 创建 Mysql 主从数据库 -> 正文阅读

[系统运维]Docker 创建 Mysql 主从数据库

一、master 创建

1、 在 /home/docker/mysql8-master 目录下新建配置文件 my.cnf:

[mysqld]
server-id=100
log-bin=mysql-bin
#binlog-do-db = test 
binlog-ignore-db = mysql
binlog-ignore-db = sys
binlog-ignore-db = performance_scheme
binlog-ignore-db = information_scheme
binlog_format=row

2、Docker 运行 master

docker run -d \
--name mysql8-master \
-p 3306:3306 \
-v /home/docker/mysql8-master/conf.d:/etc/mysql/conf.d  \
-v /home/docker/mysql8-master/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
--restart always mysql:8.0.26

二、slave 创建

1、 在 /home/docker/mysql8-slave 目录下新建配置文件 my.cnf:

[mysqld]
server-id=101 # 注意:主要是server-id不能和主服务器相同,
log-bin=mysql-slave-bin
relay_log=edu-mysql-relay-bin
#binlog-do-db = test
binlog-ignore-db = mysql
binlog-ignore-db = sys
binlog-ignore-db = performance_scheme
binlog-ignore-db = information_scheme
binlog_format=row

2、Docker 运行 slave

docker run -d \
--name mysql8-slave \
-p 3307:3306 \
-v /home/docker/mysql8-slave/conf.d:/etc/mysql/conf.d  \
-v /home/docker/mysql8-slave/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
--restart always mysql:8.0.26

三、master 操作

1、创建用户并授权

创建 slave 用户:

CREATE USER 'slave'@'%' IDENTIFIED BY '123456';

授权:

GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%';

2、锁表

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

Flush tables with read lock

3、查看主服务器状态

SHOW MASTER STATUS
在这里插入图片描述
注:position需要用在从服务器的配置中需要使用

四、slave 操作

1、配置主从

change master to master_host=‘192.168.0.101’,master_user=‘slave’,master_password=‘123456’,master_log_file=‘mysql-bin.000001’,master_log_pos=1412;

注:此处master_log_pos配置的是主服务器的postion状态值

2、开启服务

start slave;

3、查看从库状态

SHOW SLAVE STATUS

Slave_IO_Running 为 yes 则已经配置成功。

五、master 操作

1、主库解锁表

unlock tables;


问题解决:

1、Master command COM_REGISTER_SLAVE failed: Access denied for user ‘slave’@’%’ (using password: YES) (Errno: 1045)

  • 错误原因:从服务器权限不足,在主服务器配置权限
  • 解决办法:在主服务器的客户端执行:
GRANT REPLICATION SLAVE ON . TO ‘slave’@’%’;
FLUSH PRIVILEGES;

2、error connecting to master ‘repl@192.168.0.101:3306’ - retry-time: 60 retries: 2 message: Authentication plugin ‘caching_sha2_password’ reported error: Authentication requires secure connection.

  • 错误原因:密码加密方式不支持
  • 解决办法:在主服务器的客户端执行:
ALTER USER ‘slave’@’%’ IDENTIFIED WITH mysql_native_password BY ‘123456’;
FLUSH PRIVILEGES;

3、Error ‘Operation ALTER USER failed for ‘slave’@’%’’ on query. Default database: ‘’. Query: ‘ALTER USER ‘slave’@’%’ IDENTIFIED WITH ‘mysql_native_password’ AS ‘*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9’’

  • 错误原因:开启主从服务后,master 修改过用户权限,记录到 log。slave因为没有这个用户,所以执行这个语句报错。
  • 解决办法:在主服务器的客户端执行:

方法一:

ALTER USER ‘slave’@’%’ IDENTIFIED WITH mysql_native_password BY ‘123456’; # 报错的原因是没有用户,那我就创建一个
stop slave;
start slave;

方法二:

停止 slave 服务,然后查看 master 的 position 位置,修改位置后,再启动 slave 服务。(将报错的部分信息不要,这样会导致其他数据丢失)

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-02-26 12:11:44  更:2022-02-26 12:12:30 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 5:27:12-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码