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

Mysql 8.4.3LTS 的离线部署

文章目录

    • 一、部署环境
      • 资源配置
    • 二、下载地址
      • 版本选择
    • 三、部署详情
      • 1. 上传安装包
      • 2. 解压软件包
      • 3. 安装mysql
        • 3.3.1 创建mysql用户与用户组
        • 3.3.2 授权安装文件夹
        • 3.3.3 安装libaio依赖 (坑)
          • ubuntu24.04 中关于libaio的坑
        • 3.3.4 初始化Mysql数据库
        • 3.3.5 编辑my.cnf
        • 3.3.6 配置环境变量
        • 3.3.7 启动mysql
          • 设置开机启动
        • 3.3.8 登录mysql
          • 3.3.8.1 创建root
          • 3.3.8.2 Plugin 'mysql_native_password' is not load 两种解决办法
            • 重新启动该插件(不推荐)
            • 使用官方推荐方式
          • 3.3.8.3 授权
    • 四、快速部署脚本

一、部署环境

软件:mysql8.4.3LTS

系统:ubuntu24.04

资源配置

资源分配的大小与业务系统的体量有关系;所以没有固定

CPU: 2核

内存: 4 GB

磁盘: 50 GB sda[系统盘] 50GB, 默认分区

sdc[数据盘] 100GB 挂载点 /dcdata

二、下载地址

MySQL :: Download MySQL Community Server

image-20241028163656913

版本选择

由于我的操作系统比较新, 通过 ldd --version 命令查看glibc版本为2.39,所以选择了 glibc 2.28的版本

**注:**如果操作系统支持的话还是选择新的;但是考虑兼容性和维护性,我个人的部署脚本中目前选择的还是glibc2.17的包;

演示使用的是glibc2.28版本的包,后续我也将这个版本的Mysql部署到开发和测试环境中使用,组员一起体验他的稳定性和性能。

三、部署详情

1. 上传安装包

将安装包上传到服务器中,使用root用户安装,上传路径

/root/mysql-8.4.3-linux-glibc2.28-x86_64.tar.xz

2. 解压软件包

安装包上传后,执行解压到/dcsm目录下

# 新建dcsm文件夹
mkdir /dcsmtar -xvf /root/mysql-8.4.3-linux-glibc2.28-x86_64.tar.xz -C /dcsmcd /dcsm && mv mysql-8.4.3-linux-glibc2.28-x86_64/ mysql

3. 安装mysql

3.3.1 创建mysql用户与用户组

查询系统中是否存在mysql用户

cat /etc/passwd | cut -f1 -d':' | grep -w "mysql" -cgroupadd mysql && useradd -r -g mysql -s /bin/false mysql

image-20241028165731601

3.3.2 授权安装文件夹
# 创建相关文件夹
mkdir -p /dcdata/mysql/log && mkdir -p /dcdata/mysql/data && mkdir -p /dcdata/mysql/run && mkdir -p /dcdata/mysql/lib# 授权
chown -R mysql:mysql /dcsm/mysql && chown -R mysql:mysql /dcdata/mysql 

image-20241028170026153

3.3.3 安装libaio依赖 (坑)

这个依赖是和你操作系统版本有关系的;

ubuntu24.04 中关于libaio的坑

该系统在安装后自带libaio

image-20241028194337230

虽然whereis搜不到libaio.so.1 这个文件; 但系统中确实安装了 libaio;

这也是我后续初始化依然报错的原因;解决办法就是建立超链接,让mysql在初始化的时候找到这个命令

ln -s /lib/x86_64-linux-gnu/libaio.so.1t64 /lib/x86_64-linux-gnu/libaio.so.1

image-20241028194912390

这里介绍查找方法;

找一台和你镜像一样,或者操作系统版本一样的可以联网的机器;

apt search libaio

image-20241028182214358

/var/cache/apt/archives/ 下找到这个离线deb包; 在离线环境下就可以直接dpkg -i 安装这个依赖包了

注:如果不安装此依赖,后续初始化mysql数据库时会提示缺少此依赖,官网教程中也特意提到要安装这个依赖。

3.3.4 初始化Mysql数据库
cd /dcsm/mysql # 初始化
bin/mysqld --initialize --user=mysql --basedir=/dcsm/mysql --datadir=/dcdata/mysql/data --log-error=/dcdata/mysql/log/mysqld.log

image-20241028190817744

注:这是ubuntu24.04 上的坑。系统的 libaio.so.1 软连接的地址不存在;

解决方法就是重新建立一个软链接

ln -s /lib/x86_64-linux-gnu/libaio.so.1t64 /lib/x86_64-linux-gnu/libaio.so.1
3.3.5 编辑my.cnf

/etc/my.cnf

[mysqld]
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
#innodb_buffer_pool_size = 128M
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
basedir=/dcsm/mysql
datadir=/dcdata/mysql/data
socket=/dcdata/mysql/lib/mysql.sock
port=3306
log-error=/dcdata/mysql/log/mysqld.log
pid-file=/dcdata/mysql/run/mysqld.pid# 开启远程,类似dblink
federated
log_bin_trust_function_creators=1
# 时间跟随本地
log_timestamps=system
# 允许最大连接数
max_connections=2000
# 关闭binlog日志
skip-log-bin[mysql]
socket=/dcdata/mysql/lib/mysql.sock
3.3.6 配置环境变量
### 添加到系统服务中
cp /dcsm/mysql/support-files/mysql.server /etc/init.d/mysql  && chmod +x /etc/init.d/mysql### 配置到环境变量中
echo "/dcsm/mysql/lib" >>/etc/ld.so.conf &&
echo "#MYSQL ENVIRONMENT" >>/etc/profile && 
echo "export PATH=/dcsm/mysql/bin:/dcsm/mysql/lib:\$PATH" >>/etc/profile && 
source /etc/profile
3.3.7 启动mysql
### 重新加载systemd的配置信息
systemctl daemon-reload
systemctl start mysql

image-20241028195723970

设置开机启动

systemctl enable mysql

3.3.8 登录mysql

获取初始化密码

grep 'temporary password' /dcdata/mysql/log/mysqld.log | awk '{print $NF}'

image-20241028195933800

3.3.8.1 创建root

创建mysql账号root,并设置密码

mysql --connect-expired-password -uroot -p

然后输入上述密码;

连上mysql后,修改root密码,

ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘MyNewPass’;

image-20241028201140959

原因参考:[MySQL8.0.34 开始被弃用mysql_native_password插件](https://dev.mysql.com/doc/refman/8.4/en/native-pluggable-authentication.html#:~:text=MySQL client programs in MySQL 8.4 (and later),what is desired%2C like this%3A %24> mysql --default-auth%3Dmysql_native_password)

3.3.8.2 Plugin ‘mysql_native_password’ is not load 两种解决办法
重新启动该插件(不推荐)

具体做法就是修改my.cnf 文件

image-20241028201541964

重启mysql,即可生效;

使用官方推荐方式
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
3.3.8.3 授权
use mysql; update user set host = '%' where user ='root'; flush privileges;

至此部署完成~

四、快速部署脚本

该脚本适用于快速部署使用,请注意安装包版本与系统版本;

我用的是ubuntu24.04, mysql8.4.3tls

vim deploy_mysql.sh

#!/bin/bash### 假设安装包已上传到/root下### 解压软件包
mkdir /dcsm
tar -xvf /root/mysql-8.4.3-linux-glibc2.28-x86_64.tar.xz -C /dcsm
cd /dcsm && mv mysql-8.4.3-linux-glibc2.28-x86_64/ mysql### 创建 mysql 用户与用户组
if [ $(cat /etc/passwd | cut -f1 -d':' | grep -w "mysql" -c) -eq 0 ]; thengroupadd mysql && useradd -r -g mysql -s /bin/false mysql
fi### 授权安装文件夹
mkdir -p /dcdata/mysql/log && mkdir -p /dcdata/mysql/data && mkdir -p /dcdata/mysql/run && mkdir -p /dcdata/mysql/lib
chown -R mysql:mysql /dcsm/mysql && chown -R mysql:mysql /dcdata/mysql### 建立软链接
ln -s /lib/x86_64-linux-gnu/libaio.so.1t64 /lib/x86_64-linux-gnu/libaio.so.1### 初始化 Mysql
cd /dcsm/mysqlbin/mysqld --initialize --user=mysql --basedir=/dcsm/mysql --datadir=/dcdata/mysql/data --log-error=/dcdata/mysql/log/mysqld.log# 3.3.5 编辑 my.cnf
cat <<EOF > /etc/my.cnf
[mysqld]
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
#innodb_buffer_pool_size = 128M
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
basedir=/dcsm/mysql
datadir=/dcdata/mysql/data
socket=/dcdata/mysql/lib/mysql.sock
port=3306
log-error=/dcdata/mysql/log/mysqld.log
pid-file=/dcdata/mysql/run/mysqld.pid# 开启远程,类似 dblink
federated
log_bin_trust_function_creators=1
# 时间跟随本地
log_timestamps=system
# 允许最大连接数
max_connections=2000
# 关闭 binlog 日志
skip-log-bin[mysql]
socket=/dcdata/mysql/lib/mysql.sock
EOF### 配置环境变量
cp /dcsm/mysql/support-files/mysql.server /etc/init.d/mysql && chmod +x /etc/init.d/mysql
echo "/dcsm/mysql/lib" >>/etc/ld.so.conf
echo "#MYSQL ENVIRONMENT" >>/etc/profile
echo "export PATH=/dcsm/mysql/bin:/dcsm/mysql/lib:\$PATH" >>/etc/profile
source /etc/profile### 启动 mysql
systemctl daemon-reload
systemctl start mysql
systemctl enable mysql### mysql修改密码 并允许远程
initial_password=$(grep 'temporary password' /dcdata/mysql/log/mysqld.log | awk '{print $NF}')
mysql --connect-expired-password -uroot -p"$initial_password" <<EOF
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
use mysql; update user set host = '%' where user ='root'; flush privileges;
EOFsource /etc/profile

脚本授权

chmod +x deploy_mysql.sh

执行部署

./deploy_mysql.sh

image-20241028203200087

连接成功;

image-20241028203119358

相关文章:

Mysql 8.4.3LTS 的离线部署

文章目录 一、部署环境资源配置 二、下载地址版本选择 三、部署详情1. 上传安装包2. 解压软件包3. 安装mysql3.3.1 创建mysql用户与用户组3.3.2 授权安装文件夹3.3.3 安装libaio依赖 &#xff08;坑&#xff09;ubuntu24.04 中关于libaio的坑 3.3.4 初始化Mysql数据库3.3.5 编辑…...

h5项目打包上线报错404文件找不到

配置一下路由就可以了 1.找到项目里的这个文件 2.滑到最下面‘源码视图’ 3.找到base&#xff0c;没有的话写上一个&#xff0c;保存后打包就可以了 "h5" : {"router" : {"base" : "./"}}...

mysql上课总结(5)(MySQL的完整性约束(详细介绍))

目录 一、完整性约束。 &#xff08;1&#xff09;概念与目的。 <1>概念。 <2>目的。 &#xff08;2&#xff09;各个约束的详细&#xff08;表格&#xff09; &#xff08;3&#xff09;各个约束的简要总结。 <1>主键约束。 <2>唯一约束。 <3>非…...

复原IP地址

分割字符串的姐妹题 题目&#xff1a;93. 复原 IP 地址 - 力扣&#xff08;LeetCode&#xff09; 题解&#xff1a;代码随想录 代码&#xff1a; class Solution {List<String> resnew ArrayList<>();public List<String> restoreIpAddresses(String s) …...

Effective C++ 学习笔记二

Effective C 学习笔记二 文章目录 Effective C 学习笔记二别让异常逃离析构函数绝不在构造和析构的过程中调用virtual函数令operator 返回一个reference to *this在operator中处理"自我赋值"C四种转换 别让异常逃离析构函数 C 并不禁止析构函数吐出异常&#xff0c;…...

以「JIMUMETA元宇宙体验馆」为例,探讨有哪些元宇宙场景?

让我们以「JIMUMETA元宇宙体验馆」为例&#xff0c;深入探讨元宇宙场景中提供的产品与服务。该体验馆由视创云展精心打造&#xff0c;集成了企业主展馆、元宇宙虚拟活动分会场、品牌展示分会场、线上论坛会场以及会议室接待会客等多重功能&#xff0c;旨在全方位满足企业发布会…...

RHCE的练习(8)

动态网站 lnmp&#xff08;LAMP&#xff09; 解析index.php界面 &#xff08;1&#xff09;预配&#xff0c;确保服务能够被访问 systemctl stop firewalld setenforce 0 &#xff08;2&#xff09;安装nginx服务 mount /dev/sr0 /mnt cat /etc/yum.repos.d/base.repo dnf …...

yocto是如何收集recipes,如何加入现有的bb文件

yocto通常是如何收集recipes: 在Yocto中&#xff0c;通过以下方式收集recipes&#xff1a; 层&#xff08;Layers&#xff09; Yocto项目使用层来组织recipes。层是包含配置文件、recipes和其他相关文件的目录结构。每个层有自己的目录&#xff0c;其中 recipes-* 目录用于存…...

[运维] 服务器本地网络可用性检查脚本

引言 在日常活动中&#xff0c;我遇到过一个令人头疼的问题。测试使用的远程终端在第二天继续使用时可能就发生无法与外网通信的情况&#xff0c;往往连上终端后在拉取资源时才能发现。这导致每次使用前都需要手动检查网络状况&#xff0c;增加了不必要的麻烦。为了简化这一过…...

MYSQL-显示信息关于服务器插件语法(二十五)

13.7.5.25 SHOW PLUGINS 语句 SHOW PLUGINSSHOW PLUGINS 显示信息 关于服务器插件。 SHOW PLUGINS 输出示例&#xff1a; mysql> SHOW PLUGINS\G *************************** 1. row ***************************Name: binlogStatus: ACTIVEType: STORAGE ENGINE Librar…...

【线下培训】龙信受邀参加开封市公安局举办的电子数据取证培训班

文章关键词&#xff1a;电子数据取证、手机取证、云取证、国产化取证 为了提升开封市公安机关在互联网电子数据取证分析方面的专业能力&#xff0c;龙信为开封市公安机关量身打造了一场高质量的电子数据取证分析技能培训课程。 本次培训课程不仅涵盖了电子数据取证的基础理论、…...

软件测试工程师面试整理 —— 编程与自动化!

在软件测试领域&#xff0c;编程与自动化是提升测试效率、覆盖率和可靠性的关键因素。掌握编程技术和自动化测试框架&#xff0c;能够帮助测试人员有效地执行大量重复性测试任务&#xff0c;并迅速反馈软件的质量状况。以下是编程与自动化在测试中的主要应用及相关技术介绍&…...

【鸿蒙新闻】10月29日警用鸿蒙开发者大会在北京胜利召开,开启智慧应用新时代!

10月29日&#xff0c;在公安部科技信息化局、公安部装备财务局指导下&#xff0c;由公安部第一研究所主办&#xff0c;鼎桥通信技术有限公司、OpenHarmony生态委员会及公共安全专委会协办的警用鸿蒙开发者大会在北京胜利召开。会议以“拥抱警鸿创新生态 开启智慧应用新时代”为…...

java.io.IOException: Too many open files

java.io.IOException: Too many open files 前言&#xff1a; 项目最近报 java.io.IOException: Too many open files 问题&#xff0c;大概意思是&#xff1a;意味着你的应用程序尝试打开的文件描述符数量超过了系统允许的最大数量&#xff0c;在linux中每个进程打开的文件描…...

ElementUI el-form表单多层数组的校验

问题描述 提示&#xff1a;这里描述项目中遇到的问题&#xff1a; ElementUI el-form表单多层数组的校验 页面效果&#xff1a; 数据结构&#xff1a; addform: {code: ,type: ,value: ,state: 1,remark: ,fieldList: [{fieldCode: ,resolverEntities: [{resolverType: , re…...

常见的向量范数、矩阵范数和对偶范数-对偶范数详细证明过程

文章目录 对偶范数一般定义&#xff1a; p p p-范数和 q q q-范数的对偶性特例 1&#xff1a;无穷范数和 1 范数的对偶性特例 2&#xff1a;2 范数的对偶是自身特例 3&#xff1a;有限范数与 0 范数的对偶关系&#xff08;稀疏性&#xff09;特例 4&#xff1a;核范数&#xff…...

Android 滴滴面经

Android 滴滴面经 文章目录 Android 滴滴面经一面二面三面 一面 Activity的启动的四种模式&#xff0c;四种启动模式的应用场景&#xff0c;单例模式的启动场景&#xff0c;我回答的是闹钟&#xff0c;反问&#xff1a;在单例模式下闹钟运行时点击back键&#xff0c;是回退到闹…...

angular登录按钮输入框监听

说明&#xff1a;angular实现简单的登录页面&#xff0c;监听输入框的值&#xff0c;打印出来&#xff0c;按钮监听&#xff0c;打印数据 效果图: step1:E:\projectgood\ajnine\untitled4\src\app\app.config.ts import { ApplicationConfig, provideZoneChangeDetection } …...

硅谷甄选(10)用户管理

用户管理模块 9.1 静态搭建 主要是el-form、el-pagination <template><el-card style"height: 80px"><el-form :inline"true" class"form"><el-form-item label"用户名:"><el-input placeholder"请…...

Unity XR Interaction Toolkit 开发教程(2):导入 SDK【3.0 以上版本】

文章目录 &#x1f4d5;课程总结&#x1f4d5;安装 Unity 编辑器与打包模块&#x1f4d5;导入 OpenXR&#x1f4d5;导入 XR Interaction Toolkit&#x1f4d5;打包发布 获取完整课程以及答疑&#xff0c;工程文件下载&#xff1a; https://www.spatialxr.tech/ 视频试看链接&a…...

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…...

以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:

一、属性动画概述NETX 作用&#xff1a;实现组件通用属性的渐变过渡效果&#xff0c;提升用户体验。支持属性&#xff1a;width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项&#xff1a; 布局类属性&#xff08;如宽高&#xff09;变化时&#…...

《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)

CSI-2 协议详细解析 (一&#xff09; 1. CSI-2层定义&#xff08;CSI-2 Layer Definitions&#xff09; 分层结构 &#xff1a;CSI-2协议分为6层&#xff1a; 物理层&#xff08;PHY Layer&#xff09; &#xff1a; 定义电气特性、时钟机制和传输介质&#xff08;导线&#…...

YSYX学习记录(八)

C语言&#xff0c;练习0&#xff1a; 先创建一个文件夹&#xff0c;我用的是物理机&#xff1a; 安装build-essential 练习1&#xff1a; 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件&#xff0c;随机修改或删除一部分&#xff0c;之后…...

【2025年】解决Burpsuite抓不到https包的问题

环境&#xff1a;windows11 burpsuite:2025.5 在抓取https网站时&#xff0c;burpsuite抓取不到https数据包&#xff0c;只显示&#xff1a; 解决该问题只需如下三个步骤&#xff1a; 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...

《基于Apache Flink的流处理》笔记

思维导图 1-3 章 4-7章 8-11 章 参考资料 源码&#xff1a; https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...

自然语言处理——Transformer

自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效&#xff0c;它能挖掘数据中的时序信息以及语义信息&#xff0c;但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN&#xff0c;但是…...

使用Matplotlib创建炫酷的3D散点图:数据可视化的新维度

文章目录 基础实现代码代码解析进阶技巧1. 自定义点的大小和颜色2. 添加图例和样式美化3. 真实数据应用示例实用技巧与注意事项完整示例(带样式)应用场景在数据科学和可视化领域,三维图形能为我们提供更丰富的数据洞察。本文将手把手教你如何使用Python的Matplotlib库创建引…...

Java数值运算常见陷阱与规避方法

整数除法中的舍入问题 问题现象 当开发者预期进行浮点除法却误用整数除法时,会出现小数部分被截断的情况。典型错误模式如下: void process(int value) {double half = value / 2; // 整数除法导致截断// 使用half变量 }此时...

Python 实现 Web 静态服务器(HTTP 协议)

目录 一、在本地启动 HTTP 服务器1. Windows 下安装 node.js1&#xff09;下载安装包2&#xff09;配置环境变量3&#xff09;安装镜像4&#xff09;node.js 的常用命令 2. 安装 http-server 服务3. 使用 http-server 开启服务1&#xff09;使用 http-server2&#xff09;详解 …...