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

在鲲鹏麒麟服务器上部署MySQL主从集群

因项目需求需要部署主从MySQL集群,继续采用上次的部署的MySQL镜像arm64v8/mysql:latest,版本信息为v8.1.0。计划部署服务器192.168.31.100和192.168.31.101

部署MySQL主节点

在192.168.31.100上先创建好/data/docker/mysql/data和/data/docker/mysql/logs目录,创建好/data/docker/mysql/my.cnf文件,内容如下:

[mysqld]
server-id=100
log-bin=mysql-bin
port=3306
max_connections=200
max_connect_errors=10
character-set-server=utf8
default-storage-engine=INNODB
default_authentication_plugin=mysql_native_password
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 
performance_schema_max_table_instances=600[mysql]
default-character-set=utf8[client]
port=3306
default-character-set=utf8

然后创建MySQL镜像,执行

docker run --network=host -d -p 3306:3306 \
--name mysql --privileged=true \
-e MYSQL_ROOT_PASSWORD="888888" -e MYSQL_USER="admin" -e MYSQL_PASSWORD="888888" \
-v=/data/docker/mysql/my.cnf:/etc/my.cnf \
-v=/data/docker/mysql/data:/var/lib/mysql \
-v=/data/docker/mysql/logs:/var/log \
-v=/etc/localtime:/etc/localtime \
arm64v8/mysql:latest --server-id=100

执行成功后,检查MySQL是否启动成功,执行docker ps,出现如下内容表示启动成功

[root@server01 mysql]# docker ps
CONTAINER ID        IMAGE                             COMMAND                  CREATED             STATUS                   PORTS                    NAMES
50214a2de4f8        arm64v8/mysql:latest              "docker-entrypoint.s…"   17 minutes ago      Up 17 minutes                                     mysql

进入镜像:docker exec -it mysql /bin/bash
登录MySQL:mysql -uroot -p
依次执行如下命令:

ALTER USER 'root'@'%' IDENTIFIED WITH 'mysql_native_password' BY '888888';
CREATE USER 'slave'@'%' IDENTIFIED BY '888888';
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%';
ALTER USER 'slave'@'%' IDENTIFIED WITH 'mysql_native_password' BY '888888';
FLUSH PRIVILEGES;

然后执行show master status命令:

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

注意这里的File和Position,很重要,后面会用到。

部署MySQL从节点

在192.168.31.101上先创建好/data/docker/mysql/data和/data/docker/mysql/logs目录,创建好/data/docker/mysql/my.cnf文件,内容如下:

[mysqld]
server-id=101
log-bin=mysql-bin
port=3306
max_connections=200
max_connect_errors=10
character-set-server=utf8
default-storage-engine=INNODB
default_authentication_plugin=mysql_native_password
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 
performance_schema_max_table_instances=600[mysql]
default-character-set=utf8[client]
port=3306
default-character-set=utf8

然后创建MySQL镜像,执行

docker run --network=host -d -p 3306:3306 \
--name mysql --privileged=true \
-e MYSQL_ROOT_PASSWORD="888888" -e MYSQL_USER="admin" -e MYSQL_PASSWORD="888888" \
-v=/data/docker/mysql/my.cnf:/etc/my.cnf \
-v=/data/docker/mysql/data:/var/lib/mysql \
-v=/data/docker/mysql/logs:/var/log \
-v=/etc/localtime:/etc/localtime \
arm64v8/mysql:latest --server-id=101

执行成功后,检查MySQL是否启动成功,执行docker ps,出现如下内容表示启动成功

[root@server02 mysql]# docker ps
CONTAINER ID        IMAGE                  COMMAND                  CREATED             STATUS              PORTS                    NAMES
f6793b5e6ded        arm64v8/mysql:latest   "docker-entrypoint.s…"   21 minutes ago      Up 21 minutes                                mysql

进入镜像:docker exec -it mysql /bin/bash
登录MySQL:mysql -uroot -p
依次执行如下命令:

ALTER USER 'root'@'%' IDENTIFIED WITH 'mysql_native_password' BY '888888';
FLUSH PRIVILEGES;

配置从节点

change master to master_host='192.168.31.100', master_user='slave', master_password='888888', master_port=3306, master_log_file='binlog.000002', master_log_pos=2925, master_connect_retry=30;

注意这里的master_log_file和master_log_pos需要和前面主节点匹配起来,具体参数说明如下:

# master_host :Master库的地址
# master_port:Master的端口号,指的是容器的端口号
# master_user:用于数据同步的用户
# master_password:用于同步的用户的密码
# master_log_file:指定 Slave 从哪个日志文件开始复制数据,即上文中提到的 File 字段的值
# master_log_pos:从哪个 Position 开始读,即上文中提到的 Position 字段的值
# master_connect_retry:如果连接失败,重试的时间间隔,单位是秒,默认是60秒

然后开通同步执行:start slave;
如果需要关闭同步执行:stop slave;
然后执行show slave status命令:

+----------------------------------+-------------+-------------+-------------+---------------+-----------------+---------------------+------------------------+---------------+-----------------------+------------------+-------------------+-----------------+---------------------+--------------------+------------------------+-------------------------+-----------------------------+------------+------------+--------------+---------------------+-----------------+-----------------+----------------+---------------+--------------------+--------------------+--------------------+-----------------+-------------------+----------------+-----------------------+-------------------------------+---------------+---------------+----------------+----------------+-----------------------------+------------------+--------------------------------------+-------------------------+-----------+---------------------+----------------------------------------------------------+--------------------+-------------+-------------------------+--------------------------+----------------+--------------------+--------------------+-------------------+---------------+----------------------+--------------+--------------------+------------------------+-----------------------+-------------------+
| Slave_IO_State                   | Master_Host | Master_User | Master_Port | Connect_Retry | Master_Log_File | Read_Master_Log_Pos | Relay_Log_File         | Relay_Log_Pos | Relay_Master_Log_File | Slave_IO_Running | Slave_SQL_Running | Replicate_Do_DB | Replicate_Ignore_DB | Replicate_Do_Table | Replicate_Ignore_Table | Replicate_Wild_Do_Table | Replicate_Wild_Ignore_Table | Last_Errno | Last_Error | Skip_Counter | Exec_Master_Log_Pos | Relay_Log_Space | Until_Condition | Until_Log_File | Until_Log_Pos | Master_SSL_Allowed | Master_SSL_CA_File | Master_SSL_CA_Path | Master_SSL_Cert | Master_SSL_Cipher | Master_SSL_Key | Seconds_Behind_Master | Master_SSL_Verify_Server_Cert | Last_IO_Errno | Last_IO_Error | Last_SQL_Errno | Last_SQL_Error | Replicate_Ignore_Server_Ids | Master_Server_Id | Master_UUID                          | Master_Info_File        | SQL_Delay | SQL_Remaining_Delay | Slave_SQL_Running_State                                  | Master_Retry_Count | Master_Bind | Last_IO_Error_Timestamp | Last_SQL_Error_Timestamp | Master_SSL_Crl | Master_SSL_Crlpath | Retrieved_Gtid_Set | Executed_Gtid_Set | Auto_Position | Replicate_Rewrite_DB | Channel_Name | Master_TLS_Version | Master_public_key_path | Get_master_public_key | Network_Namespace |
+----------------------------------+-------------+-------------+-------------+---------------+-----------------+---------------------+------------------------+---------------+-----------------------+------------------+-------------------+-----------------+---------------------+--------------------+------------------------+-------------------------+-----------------------------+------------+------------+--------------+---------------------+-----------------+-----------------+----------------+---------------+--------------------+--------------------+--------------------+-----------------+-------------------+----------------+-----------------------+-------------------------------+---------------+---------------+----------------+----------------+-----------------------------+------------------+--------------------------------------+-------------------------+-----------+---------------------+----------------------------------------------------------+--------------------+-------------+-------------------------+--------------------------+----------------+--------------------+--------------------+-------------------+---------------+----------------------+--------------+--------------------+------------------------+-----------------------+-------------------+
| Waiting for source to send event | 10.16.39.9  | slave       |        3306 |            30 | binlog.000002   |                2925 | ecs02-relay-bin.000002 |          1804 | binlog.000002         | Yes              | Yes               |                 |                     |                    |                        |                         |                             |          0 |            |            0 |                2925 |            2014 | None            |                |             0 | No                 |                    |                    |                 |                   |                |                     0 | No                            |             0 |               |              0 |                |                             |              100 | 7ec2b8d1-ae21-11ef-9e2a-fa163e637a5c | mysql.slave_master_info |         0 |                NULL | Replica has read all relay log; waiting for more updates |                 10 |             |                         |                          |                |                    |                    |                   |             0 |                      |              |                    |                        |                     0 |                   |
+----------------------------------+-------------+-------------+-------------+---------------+-----------------+---------------------+------------------------+---------------+-----------------------+------------------+-------------------+-----------------+---------------------+--------------------+------------------------+-------------------------+-----------------------------+------------+------------+--------------+---------------------+-----------------+-----------------+----------------+---------------+--------------------+--------------------+--------------------+-----------------+-------------------+----------------+-----------------------+-------------------------------+---------------+---------------+----------------+----------------+-----------------------------+------------------+--------------------------------------+-------------------------+-----------+---------------------+----------------------------------------------------------+--------------------+-------------+-------------------------+--------------------------+----------------+--------------------+--------------------+-------------------+---------------+----------------------+--------------+--------------------+------------------------+-----------------------+-------------------+

关键看Slave_SQL_Running_State列,没有报错即可。
至此MySQL主从配置已经全部部署好。

验证测试

在主节点上创建一个数据库test,并创建一个表,插入几条数据
在这里插入图片描述
从节点上截图如下:
在这里插入图片描述

相关文章:

在鲲鹏麒麟服务器上部署MySQL主从集群

因项目需求需要部署主从MySQL集群,继续采用上次的部署的MySQL镜像arm64v8/mysql:latest,版本信息为v8.1.0。计划部署服务器192.168.31.100和192.168.31.101 部署MySQL主节点 在192.168.31.100上先创建好/data/docker/mysql/data和/data/docker/mysql/l…...

Siknhorn算法介绍

SiknHorn算法是一个快速求解离散优化问题的经典算法,特别适用于计算离散分布之间的**最优传输(Optimal Transport)**距离; 最优传输问题介绍 计算两个概率分布 P 和 Q 之间的传输成本,通常表示为: 是传输…...

群控系统服务端开发模式-应用开发-邮箱短信通道功能开发

邮箱短信通道主要是将邮箱及短信做归属的。具体见下图: 一、创建表 1、语句 CREATE TABLE cluster_control.nc_param_emailsms (id int(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 编号,email_id varchar(120) CHARACTER SET utf8 COLLATE utf8_general_ci NO…...

[docker中首次配置git环境]

11月没写东西,12月初赶紧水一篇。 刚开始搭建docker服务器时,网上找一堆指令配置好git后,再次新建容器后忘记怎么配了,,这次记录下。 一、git ssh指令法,该方法不用每次提交时输入密码 前期准备&#xff0…...

书生浦语·第四期作业合集

目录 1. Linux基础知识 1.1-Linux基础知识 1.在终端通过ssh 端口映射连接开发机 2. 创建helloworld.py 3.安装相关包并运行 4.端口映射并访问相关网页...

5G学习笔记之PRACH

即使是阴天,也要记得出门晒太阳哦 目录 1. 概述 2. PRACH Preamble 3. PRACH Preamble 类型 3.1 长前导码 3.2 短前导码 3.3 前导码格式与小区覆盖 4. PRACH时频资源 4.1 小区所有可用PRACH资源 4.2 SSB和RACH的关系 4.3 PRACH时频资源配置 1. 概述 随机接入…...

Ubuntu24.04配置DINO-Tracker

一、引言 记录 Ubuntu 配置的第一个代码过程 二、更改conda虚拟环境的默认安装路径 鉴于不久前由于磁盘空间不足引发的重装系统的惨痛经历,在新系统装好后当然要先更改虚拟环境的默认安装路径。 输入指令: conda info可能因为我原本就没有把 Anacod…...

抓包之查看websocket内容

写在前面 本文看下websocket抓包相关内容。 1:正文 websocket基础环境搭建参考这篇文章。 启动后,先看chrome的network抓包,这里我们直接使用is:running来过滤出websocket的请求: 可以清晰的看到发送的内容以及响应的内容。在…...

【Leetcode Top 100】21. 合并两个有序链表

问题背景 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 数据约束 两个链表的节点数目范围是 [ 0 , 50 ] [0, 50] [0,50] − 100 ≤ N o d e . v a l ≤ 100 -100 \le Node.val \le 100 −100≤Node.val≤100 l 1 l_1 …...

账本模型

05-账本模型 1 账本模型 1.1 传统线性增长模型 传统的 MySQL 等系统采用线性增长的日志模型,通过一个 Leader 和多个 Follower 进行状态同步。这种方式有单点的带宽瓶颈问题。 1.2 区块链共享账本模型 共享账本:树形增长。在去中心化网络中,…...

openwrt利用nftables在校园网环境下开启nat6 (ipv6 nat)

年初写过一篇openwrt在校园网环境下开启ipv6 nat的文章,利用ip6tables控制ipv6的流量。然而从OpenWrt22版本开始,系统内置的防火墙变为nftables,因此配置方法有所改变。本文主要参考了OpenWRT使用nftables实现IPv6 NAT 这篇文章。 友情提示 …...

24.12.02 Element

import { createApp } from vue // 引入elementPlus js库 css库 import ElementPlus from element-plus import element-plus/dist/index.css //中文语言包 import zhCn from element-plus/es/locale/lang/zh-cn //图标库 import * as ElementPlusIconsVue from element-plus/i…...

记录QT5迁移到QT6.8上的一些问题

经常看到有的同学说网上的教程都是假的,巴拉巴拉,看看人家发布时间,Qt官方的API都会有所变动,多搜索,多总结,再修改记录。 下次遇到问题多这样搜索 QT 4/5/6 xxx document,对比一下就知道…...

清理Linux/CentOS7根目录的思路

在使用Linux服务器过程中,经常会遇到磁盘空间不足的问题,好多应用默认安装在根目录下,记录一下如何找到问题所在,清理根目录(/) 1. 检查空间使用情况 1.1 查看分区占用: df -h输出&#xff1…...

【LInux】kvm添加u盘启动引导

前提:要有一个u盘的启动盘 1、查看u盘设备信息 # lsusb ....忽略其他设备信息,查看到u盘设备 Bus 005 Device 005: ID 0951:1666 Kingston Technology DataTraveler 100 G3/G4/SE9 G2## 主要记住ID 0951:1666确认id为ID 0951:1666 2、修改配置文件 如…...

.net XSSFWorkbook 读取/写入 指定单元格的内容

方法如下&#xff1a; using NPOI.SS.Formula.Functions;using NPOI.SS.UserModel;using OfficeOpenXml.FormulaParsing.Excel.Functions.DateTime;using OfficeOpenXml.FormulaParsing.Excel.Functions.Numeric;/// <summary>/// 读取Excel指定单元格内容/// </summa…...

GaussDB(类似PostgreSQL)常用命令和注意事项

文章目录 前言GaussDB&#xff08;类似PostgreSQL&#xff09;常用命令和注意事项1. 连接到GaussDB数据库2. 查看当前数据库中的所有Schema3. 进入指定的Schema4. 查看Schema下的表、序列、视图5. 查看Schema下所有的表6. 查看表结构7. 开始事务8. 查询表字段注释9. 注意事项&a…...

【HM-React】02. React基础-下

React表单控制 受控绑定 概念&#xff1a;使用React组件的状态&#xff08;useState&#xff09;控制表单的状态 function App(){const [value, setValue] useState()return (<input type"text" value{value} onChange{e > setValue(e.target.value)}/>) …...

【力扣热题100】—— Day3.反转链表

你不会永远顺遂&#xff0c;更不会一直年轻&#xff0c;你太安静了&#xff0c;是时候出发了 —— 24.12.2 206. 反转链表 给你单链表的头节点 head &#xff0c;请你反转链表&#xff0c;并返回反转后的链表。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5] 输出&…...

【k8s深入学习之 event 记录】初步了解 k8s event 记录机制

event 事件记录初始化 一般在控制器都会有如下的初始化函数&#xff0c;初始化 event 记录器等参数 1. 创建 EventBroadcaster record.NewBroadcaster(): 创建事件广播器&#xff0c;用于记录和分发事件。StartLogging(klog.Infof): 将事件以日志的形式输出。StartRecording…...

从FasterRCNN到自定义检测器:SimpleDet扩展开发完全手册

从FasterRCNN到自定义检测器&#xff1a;SimpleDet扩展开发完全手册 【免费下载链接】simpledet A Simple and Versatile Framework for Object Detection and Instance Recognition 项目地址: https://gitcode.com/gh_mirrors/si/simpledet SimpleDet是一个简单且多功能…...

告别繁琐输入:基于SmartConfig与微信的ESP8266/ESP32一键配网实战

1. 为什么我们需要一键配网技术&#xff1f; 每次拿到新的智能设备&#xff0c;最头疼的就是怎么把它连上家里的Wi-Fi。传统的配网方式通常需要你在手机App里手动输入Wi-Fi名称和密码&#xff0c;这个过程不仅繁琐&#xff0c;还容易出错。想象一下&#xff0c;你要给10个智能灯…...

Python爬虫实战:Playwright 穿透阿里云市场,自动化抓取镜像情报!

㊗️本期内容已收录至专栏《Python爬虫实战》,持续完善知识体系与项目实战,建议先订阅收藏,后续查阅更方便~ ㊙️本期爬虫难度指数:⭐⭐ 🉐福利: 一次订阅后,专栏内的所有文章可永久免费看,持续更新中,保底1000+(篇)硬核实战内容。 全文目录: 🌟 开篇语 0️⃣ 前…...

告别文献堆砌!PaperXie AI 文献综述:重构学术写作逻辑,3 步打造导师青睐的深度综述

paperxie-免费查重复率aigc检测/开题报告/毕业论文/智能排版/文献综述/AIPPThttps://www.paperxie.cn/ai/journalsReviewedhttps://www.paperxie.cn/ai/journalsReviewed 在学术写作的漫漫长路上&#xff0c;文献综述宛如横亘在无数本科生、研究生面前的 "天堑"—— …...

万象视界灵坛快速部署:GitLab CI流水线自动触发镜像构建与K8s滚动更新

万象视界灵坛快速部署&#xff1a;GitLab CI流水线自动触发镜像构建与K8s滚动更新 1. 项目概述 万象视界灵坛&#xff08;Omni-Vision Sanctuary&#xff09;是一款基于OpenAI CLIP技术的高级多模态智能感知平台。该平台通过创新的像素风格界面&#xff0c;将复杂的语义对齐过…...

零基础友好:快马AI为你定制专属visual studio code图文安装与上手教程

作为一名从零开始学习编程的新手&#xff0c;我深刻体会到安装开发环境是很多人遇到的第一个"拦路虎"。最近在InsCode(快马)平台上发现了一个特别适合新手的Visual Studio Code安装教程项目&#xff0c;它完全解决了我的困惑。下面分享我的学习笔记&#xff0c;希望能…...

DNS负载均衡的5个认知误区:为什么你的轮询总不生效?(附排查指南)

DNS负载均衡的5个认知误区&#xff1a;为什么你的轮询总不生效&#xff1f;&#xff08;附排查指南&#xff09; 当我们在讨论DNS负载均衡时&#xff0c;常常会遇到一些根深蒂固的误解。这些误解不仅会影响系统设计决策&#xff0c;还可能导致运维人员在排查问题时走弯路。本文…...

SDMatte效果对比评测:与传统抠图工具及在线API的全面比拼

SDMatte效果对比评测&#xff1a;与传统抠图工具及在线API的全面比拼 1. 开篇&#xff1a;为什么需要新的抠图方案 在数字内容创作领域&#xff0c;抠图一直是个让人又爱又恨的技术活。记得去年帮朋友做电商产品图&#xff0c;光是给20个商品抠图就花了我整整一个周末。传统工…...

MULTISIM仿真揭秘:如何设计高可靠性的光耦隔离PMOS驱动电路

1. 光耦隔离PMOS驱动电路的设计挑战 在工业控制和高压隔离场景中&#xff0c;PMOS驱动电路的设计往往面临诸多挑战。我曾在多个项目中遇到过MOS管因静电击穿而损坏的情况&#xff0c;也经历过因开关频率不足导致系统性能下降的尴尬。这些问题归根结底都与MOS管的特性有关。 MOS…...

从MATLAB验证到FPGA上板:双频信号叠加的完整开发闭环实战

从MATLAB验证到FPGA上板&#xff1a;双频信号叠加的完整开发闭环实战 在数字信号处理领域&#xff0c;实现双频信号的精确叠加是一个常见但极具挑战性的任务。无论是通信系统中的载波调制&#xff0c;还是音频处理中的音效合成&#xff0c;都需要工程师能够准确地在硬件层面实现…...