在鲲鹏麒麟服务器上部署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,并创建一个表,插入几条数据
在这里插入图片描述
从节点上截图如下:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/62810.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Kamailio SIP服务器的配置与运行

一、Kamailio 简介 Kamailio(原名OpenSER)是一款基于SIP(Session Initiation Protocol)协议的开源服务器,适用于构建VoIP(Voice over Internet Protocol)、视频会议、即时消息和 presence服务等…

Transformers在计算机视觉领域中的应用【第2篇:MAE——BERT的CV版本】

目录 1 介绍2 模型示意图3 MAE算法4 总结 论文:Masked Autoencoders Are Scalable Vision Learners 代码:https://github.com/facebookresearch/mae 1 介绍 MAE是基于ViT的,将整个训练拓展到没有标号的数据上面,和BERT一样&#…

WebGL vendor [显卡]指纹

一、WebGL vendor:(厂商) Google Inc. (NVIDIA) c定义在 third_party\angle\src\libANGLE\Display.cpp 格式化Google Inc.字符在Display::initVendorString()函数里面,可以在此修改值。 void Display::initVendorString() {mVendorString …

PCL点云处理之判断点在多边形内外--方法1 (二百四十二)

PCL点云处理之判断点在多边形内外--方法1 (二百四十二) 一、算法介绍二、算法实现1.代码2.结果一、算法介绍 这里实现一种判断点与多边形位置关系的算法,具体使用前可能需要验证!!!,这里只做了有限的测试用于参考,代码实现不依赖其他库,使用接口直接看给出示例即可,注意…

stable diffusion实践操作-大模型介绍:SD的发展历史,SD1.5和SDXL之间的差别

大家有没有这样的困惑:在找模型时,老是会出现一些奇怪的标签,像 sd1.5、sdxl 之类的模型后缀,真让人摸不着头脑,一会儿 1.0,一会儿 1.5,一会儿 XL,完全搞不清楚状况。今天就来给大家…

网络编程第二课

预备知识 1、操作系统的用户态和内核态: 用户态指的是用户自己定义工作空间,自己申请变量、定义函数的操作。 内核态指把一些工作交给操作系统去玩成,用户本身看不到执行过程,只能获取操作系统最后执行完成的结果。其中&#x…

Spring中@Transactional注解与事务传播机制

文章目录 事务传播机制事务失效的场景 事务传播机制 事务的传播特性指的是 当一个事务方法调用另一个事务方法时,事务方法应该如何执行。 事务传播行为类型外部不存在事务外部存在事务使用方式REQUIRED(默认)开启新的事务融合到外部事务中Transactional(propagati…

Python酷库之旅-第三方库Pandas(252)

目录 一、用法精讲 1191、pandas.tseries.offsets.BusinessMonthBegin.n属性 1191-1、语法 1191-2、参数 1191-3、功能 1191-4、返回值 1191-5、说明 1191-6、用法 1191-6-1、数据准备 1191-6-2、代码示例 1191-6-3、结果输出 1192、pandas.tseries.offsets.Busine…

IO流之文件

1. 文件流 2. 常用文件操作 2.1 文件创建 方式1 new File(String pathname) // 根据路径创建一个File对象 方式2 new File(File parent,String child) //根据父目录文件子路径构建 方式3 new File(String parent,String child) //根据父目录子路径构建 package com.hspedu.fil…

【从零开始的LeetCode-算法】35. 搜索插入位置

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 示例 1: 输入: nums [1,3,5,6], target 5 输出: 2示例 2: 输入: …

C++(4个类型转换)

1. C语言中的类型转换 1. 隐式 类型转换: 具有相近的类型才能进行互相转换,如:int,char,double都表示数值。 2. 强制类型转换:能隐式类型转换就能强制类型转换,隐式类型之间的转换类型强相关,强制类型转换…

深度学习7 梯度下降优化、过拟合、手机价格预测

三、BP算法 3、梯度下降 w w - lr * grad: w 表示权重,lr表示学习率,grad表示梯度 传统下降方式分三类:(BGD)批量梯度下降、(MBGD)小批量梯度下降、(SGD)随…

计算机的错误计算(一百七十二)

摘要 探讨 MATLAB 对于算式 的计算误差。 例1. 在 MATLAB 中计算 的值。 直接贴图吧: 这样,MATLAB 的输出中只有3位正确数字,有效数字的错误率为 (16-3)/16 81.25% . 因为16位的正确输出为 0.2971242332737277e-18(ISReals…

手撸了一个文件传输工具

在日常的开发与运维中,文件传输工具是不可或缺的利器。无论是跨服务器传递配置文件,还是快速从一台机器下载日志文件,一个高效、可靠且简单的文件传输工具能够显著提高工作效率。今天,我想分享我自己手撸一个文件传输工具的全过程…

Linux系统编程之进程创建

概述 在Linux系统中,通过创建新的进程,我们可以实现多任务处理、并发执行和资源隔离等功能。创建进程的主要方法为:fork、vfork、clone。下面,我们将分别进行介绍。 fork fork是最常用的创建新进程的方法。当一个进程调用fork时&a…

【人工智能】用Python实现卷积神经网络(CNN)进行图像分类:从零开始的深度学习教程

《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 卷积神经网络(CNN)是处理图像分类任务的核心工具,它通过卷积操作和池化机制提取图像的特征并实现分类。本文将手把手教你如何使用 Python 和深度学习框架(PyTorch)从头实现一个 CNN 模型,应用于图像…

深入探讨NIO

目录 传统阻塞IO 非阻塞IO select() epoll 总结 传统阻塞IO 非阻塞IO IO多路复用select() IO多路复用epoll 传统阻塞IO 在传统的阻塞IO模型中,当一个线程执行到IO操作(如读取数据)时,如果数据尚未准备好,它会…

新手参加2025年CTF大赛——Web题目的基本解题流程

CTF(Capture the Flag)是网络安全比赛中的一种常见形式,参赛者需要通过破解题目、发现漏洞并获取flag(标志)来获得分数。 这些问题涉及多个领域,如逆向工程、Web安全、密码学、二进制漏洞、取证分析等。CTF…

1Panel 自建邮局 - Docker Mailserver

本文首发于 Anyeの小站,点击链接 访问体验更佳 前言 首先发一段劝退说辞:我相信点进本文的人自建邮局的目的更多地是为了能用自己的域名邮箱,收发邮件? 仅收不发,推荐使用 https://www.cloudflare.com/zh-cn/develop…

QT-thread2种方式选择的优劣对比

1.第一种方式:使用 QObject 的 moveToThread() QObjectQthread class MessageWriter : public QObject {Q_OBJECT public slots:void writeDataToFile(); };threadMsgExchange new QThread();MessageWriter *writer new MessageWriter();writer->moveToThread…