Mysql 8.4.3LTS 的离线部署

Windws MySQL 8.4 LTS的安装(保姆级教程) 阅读详情
AI摘要

本文介绍在 Ubuntu 24.04 系统上部署 MySQL 8.4.3 的详细过程。包括部署环境的资源配置,版本选择,上传解压安装包,安装 MySQL 及依赖 libaio,初始化数据库,编辑配置文件,启动并登录 MySQL,还给出解决登录问题的办法,最后提供快速部署脚本。

一、部署环境

软件: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 /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

3. 安装mysql

3.3.1 创建mysql用户与用户组

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

cat /etc/passwd | cut -f1 -d':' | grep -w "mysql" -c

groupadd 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 ]; then
    groupadd 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/mysql

bin/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;
EOF

source /etc/profile

脚本授权

chmod +x deploy_mysql.sh

执行部署

./deploy_mysql.sh

image-20241028203200087

连接成功;

image-20241028203119358

离线环境下源码编译安装部署 Zabbix 6.4 LTS 详细教程 本文详细介绍了在严格隔离的离线Linux环境中,通过源码编译方式手动部署Zabbix 6.4 LTS监控系统的完整流程。包括环境规划、依赖安装、源码编译、数据库配置、服务启动以及Web前端部署等关键步骤,并提供了Zabbix Agent2的安装方法和常见问题解决方案。该方案适合无法使用包管理器的生产环境,但需要管理员具备一定的Linux系统管理和软件编译知识。文章最后建议,若条件允许,优先考虑使用离线RPM仓库方式以获得更好的稳定性和可维护性。 阅读详情

相关推荐

保姆级教程-Zabbix7.0LTS离线安装包+教程

很多朋友由于各种原因,服务器不能联互联网,我将Zabbix7.0LTS的安装包和依赖打包为yum软件库,可直接dnf install或者yum安装zabbix

bxcbear的博客 8929

mySQL8.4.3下载安装

下载链接:打开下载好的文件一直下一步成功打开。

m0_65400224的博客 2633

Windows下MySQL 8.4.2 LTS解压版免安装部署与项目打包实战

数据库部署是开发与运维绕不开的基础技能,尤其在Windows环境下,传统MSI安装向导虽然直观,却存在依赖注册表、难以迁移和卸载残留等问题。免安装的绿色软件理念提供了一种更轻量的选择:通过ZIP解压包直接运行数据库服务,不污染系统环境,实现随项目携带、双击启停的便捷体验。MySQL 8.4.2 LTS作为长期支持版本,在稳定性和安全性上均有保障,其默认的caching_sha2_password认证插件也对客户端兼容性提出了新要求。本文从解压目录规划、my.ini配置、服务注册到项目打包与卸载,系统讲解如何

weixin_32325225的博客 195

Mysql8.4安装配置 与 主从备份

处理方式是:主库或者从库找到auto.cnf文件,并将其删除,重启MySQL服务后重新生成新的server-uuid。这里我使用的版本文件是:mysql-8.4.3-linux-glibc2.28-x86_64.tar.xz。博主是直接虚拟机复制的,这里需要注意一点,从库的server-uuid会与主库重复。lower-case-table-names 设置不区分表名大小写。主库配置按照安装时配置的就可以了,从库需要修改下。如果无内容则直接跳过,有历史版本则执行删除操作。下面四项正确即无问题。

qq_36969407的博客 2583

Zabbix 6.4 LTS离线环境搭建:如何在没有互联网的情况下完成源码编译和部署?

本文详细介绍了在离线环境中搭建Zabbix 6.4 LTS监控系统的完整流程,包括源码编译、依赖管理、数据库配置和高可用部署。通过构建离线资源仓库、优化编译选项和实现自动化部署,帮助企业在无互联网连接的情况下高效完成Zabbix系统的安装与配置,满足金融、军工等敏感行业的特殊需求。

weixin_29204121的博客 134

华为欧拉OpenEuler系统离线部署MySQL 8:从环境适配到生产级配置

本文详细介绍了在华为欧拉OpenEuler系统上离线部署MySQL 8的完整流程,包括环境适配、离线包获取、安装步骤、生产级配置优化及故障排查。特别针对OpenEuler与MySQL 8.0.33的兼容性进行了验证,并提供了实用的配置模板和安全加固建议,适用于企业级生产环境部署。

weixin_33860553的博客 452

Ubuntu 20.04下MySQL 8.4.3 LTS离线安装全攻略

本文详细阐述了在Ubuntu 20.04操作系统上离线安装MySQL 8.4.3 LTS版本的全过程。文章首先介绍了环境配置和前期准备工作,确保系统具备安装MySQL所需的各项条件。接着,指导用户如何下载MySQL的安装包,并将其上传到目标服务器上。文章详细说明了用户与权限的设置步骤,确保MySQL服务能够以正确的用户身份运行,同时保障系统的安全性。随后,逐步介绍了MySQL的安装与配置过程,包括如何解压安装包、设置配置文件、初始化数据库等关键步骤。

AI算法爱好者角落 1609

Linux 一键部署Mysql 8.4.2 LTS

MySQL 是一个基于 SQL(Structured Query Language)的数据库系统,SQL 是一种用于访问和管理数据库的标准语言。MySQL 提供了多种版本,包括社区版(免费开源)和企业版(付费,包含更多功能和官方支持)。由于其广泛的适用性和强大的功能集,MySQL 成为了全球范围内最受欢迎的数据库系统之一。

极致,细节 962

【Ubuntu 24.04.3 LTS(Noble Numbat‌)】版本安装配置 MySQL8.4.6

作为代号的长期支持版本,凭借其稳定的内核和优化的软件生态,成为企业级数据库部署的理想平台。本文将详细记录在该系统上安装的全过程,涵盖从环境准备到安全配置的完整步骤,帮助开发者快速搭建高性能数据库环境。

2403_86969226的博客 1447

MySQL 8.4.6 LTS离线部署实战:从二进制包到生产环境

数据库部署是系统架构中的基础环节,其核心在于将数据库软件可靠地安装并运行在目标服务器上。在无法连接互联网的离线环境中,传统的包管理器安装方式失效,此时通用二进制包(Generic Binary Package)成为关键解决方案。它由官方预编译,包含了运行所需的所有库文件,实现了环境隔离与高度可控,尤其适合企业内网、安全要求高的生产场景。通过手动处理系统依赖、规划目录结构、初始化数据、编写配置文件以及集成systemd服务,可以构建出稳定、安全的数据库实例。本文聚焦MySQL 8.4.6 LTS这一长期支持版

weixin_33858485的博客 372

MySQL 8.4.6 LTS离线部署全攻略:从依赖检查到安全加固

数据库部署是系统运维中的基础环节,其核心在于确保服务在目标环境中的稳定运行。在隔离网络或严格内网等无法连接互联网的离线场景下,部署过程尤为复杂,需要管理员手动处理所有依赖和配置。这涉及到对操作系统共享库、文件权限、服务管理的深入理解。离线部署的技术价值在于提供了最高级别的环境控制与安全隔离,特别适用于金融、政务、军工等对网络访问有严格限制的关键领域。本文将聚焦于MySQL 8.4.6 LTS这一长期支持版本,详细解析如何利用其官方ZIP压缩包,在Ubuntu或Windows Server等环境中,完成从介质

weixin_34130389的博客 361

MySQL 8.4.0 LTS 深度解析:关键特性与升级策略

本文深度解析了MySQL 8.4.0 LTS版本的关键特性与升级策略。作为首个长期支持版本,它在组复制安全性、InnoDB参数默认值、权限管理及克隆兼容性上均有重要更新。文章为从MySQL 5.7或8.0版本升级的用户提供了清晰的路径规划、详细的避坑检查清单及实操指南,是企业部署与迁移的重要参考。

weixin_29251131的博客 625

MySQL 8.4.6 LTS 离线部署实战:从零搭建企业级稳定数据库环境

数据库作为现代应用的核心基础设施,其稳定性与可靠性直接关系到业务连续性。在众多数据库系统中,MySQL凭借其开源特性、成熟生态与高性能,成为企业级应用的首选之一。其核心原理基于客户端-服务器架构,通过SQL语言进行数据操作,并利用存储引擎(如InnoDB)实现事务处理与数据持久化。对于生产环境而言,长期支持(LTS)版本的价值尤为突出,它通过提供长达数年的安全更新与错误修复,在“功能创新”与“运行稳定”之间取得了关键平衡,有效降低了运维风险与升级成本。特别是在服务器没有网的离线部署场景下,如何基于官方二进制

weixin_33859844的博客 351

openEuler服务器离线部署实战:无外网环境下如何搞定JDK 1.8、MySQL 8.0和Redis 6.2

本文详细介绍了在openEuler服务器无外网环境下离线部署JDK 1.8、MySQL 8.0和Redis 6.2的实战方案。从本地镜像仓库搭建到核心组件部署,提供完整的脚本化解决方案和性能优化建议,助力企业高效构建隔离网络环境下的稳定服务。

weixin_28396629的博客 384

mysql 8.4.3 LTS macOS14 arm 64

mysql 8.4.3 LTS macOS14 arm 64

mysql 8.4.3 LTS macOS14 x86 64位

mysql 8.4.3 LTS macOS14 x86 64位

解压版MySQL 8.4.2 LTS实战:免安装部署、服务注册与迁移卸载

数据库部署是系统上线前的重要环节,传统的安装向导会在注册表、服务管理器等多处写入信息,导致实例难以整体迁移。免安装的ZIP解压版则将数据目录、配置文件和二进制文件集中在同一范围内,通过mysqld --initialize初始化、my.ini自定义参数、Windows服务注册即可快速启动,这种“目录即实例”的形态极大提升了可控性与迁移效率。对于内网隔离、离线交付、多实例并存等场景,解压版MySQL具有天然优势。以MySQL 8.4.2 LTS为例,完整演示了从下载、初始化、注册服务、目录瘦身到跨机迁移、卸载

weixin_33146151的博客 208

Ubuntu下安装Hive3.1.2教程(附MySQL安装方法及安装包)

文章目录前言一、安装Hive1. 下载压缩包并解压2. 安装Hive3. 配置环境变量4. 修改配置文件二、MySQL安装与配置1. 安装MySQL2. 安装MySQL jdbc包3. 为Hive创建MySQL账号三、验证Hive安装及错误处理1. 启动Hadoop2. 启动hive3. 运行Hive实例总结 前言 Hive 的安装需要建立在 Hadoop 的之上(类似于Hbase),关于 Hadoop 的单机安装以及伪分布式安装可以参考作者的另两篇博客: Ubuntu下单机安装Hadoop详细教程(附

程序必须为人类阅读而编写,并且仅仅碰巧可以让机器执行 1万+

ZABBIX 4.0 LTS+Grafana5.3部署(最新版)

ZABBIX 4.0 LTS+Grafana5.3部署(最新版) 置顶2018年10月14日 11:04:19思考v阅读数 7891 版权声明:本文为博主原创文章,未经博主允许不得转载。https://blog.csdn.net/xiegh2014/article/detail...

186

Android P HAL层添加HIDL实例(详细实现步骤)

Android P HAL层添加HIDL实例 本文将介绍如何在P OS上添加HIDL实例,简单增加seLinux策略使得可以在system_service调用测试,并用模拟器emulator验证。 调用过程为 APP->TestManager->TestService->ITast.hal 文章目录Android P HAL层添加HIDL实例实现过程一 、hardware部分1...

sinat_18179367的博客 1万+

免Root抓包神器Packet Capture:安卓App数据捕获全攻略

本文详细介绍了免Root安卓抓包神器Packet Capture的安装与使用全攻略。通过利用安卓系统的VPN Service API,该工具无需Root权限即可捕获并解密App的HTTP/HTTPS网络流量。文章从核心原理、证书安装、实战抓包步骤到结果分析与常见问题排查,提供了完整指南,是移动端开发、安全测试和数据分析的实用利器。

weixin_29232507的博客 1072
上一篇: 主机与另一台主机中的虚拟机通信的方式
下一篇: 完美结局 ubuntu开机卡在等待网络连接
JavaOpsPro
博客等级 码龄11年 1892粉丝 42原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JavaOpsPro

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值