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

【2026最新版Linux安装Mysql】CentOS 7 安装 MySQL 8.4.9 完整流程(RPM 手动安装+避坑+面试)

前言本文记录在CentOS 7 / RHEL 7上通过官网RPM Bundle tar 包手动安装MySQL 8.4.9LTS的完整可复现流程。适合需要在老版本 CentOS 上部署 MySQL、为 Python/AI 后端或 Java 项目准备数据库环境的读者。读完可按步骤完成安装、改密、远程访问配置并快速定位 6 类常见安装故障。⚡ 快速参考适用场景CentOS 7 无法直接用 yum 装到目标版本需要指定MySQL 8.4.x LTS生产/测试机离线或半离线部署核心结论先卸MariaDB→ 按固定顺序装6 个核心 RPM→mysqld --initialize拿临时密码 →chown mysql→systemctl启服 →ALTER USER改密最简步骤下载 mysql安装包 → 解压 → 卸 mariadb-libs → 装依赖 → 顺序 rpm -ivh → 初始化 → 改权限 → 启动 → 改 root 密码必备命令mysqld --initialize --console、chown -R mysql:mysql /var/lib/mysql/、systemctl start mysqld高危避坑RPM 安装顺序不能乱初始化后数据目录所有者必须是mysql远程访问需同时处理用户授权 防火墙 bind-address 学习目标理解 MySQL 8.4 RPM Bundle 各包职责及与系统 MariaDB 的冲突关系能独立完成 CentOS 7 上 MySQL 8.4.9 的安装、初始化、改密与远程访问配置掌握初始化、权限、防火墙、SELinux 等典型故障的定位与修复方法一、环境1.1 环境与版本项目说明操作系统CentOS 7 / RHEL 7MySQL 版本8.4.98.4 系列LTS长期支持安装包mysql-8.4.9-1.el7.x86_64.rpm-bundle.tar安装方式从 tar 解压后手动rpm -ivh非 yum 源一键装1.2 为什么要先卸载 MariaDBCentOS 7 默认自带MariaDB客户端库如mariadb-libs与 MySQL 官方 RPM 中的mysql-community-libs会冲突同名能力、不同实现。不卸载会导致 MySQL RPM 安装失败或运行时链接错误。1.3 RPM Bundle 核心包职责必装 6 个包名作用mysql-community-common公共文件错误信息、字符集等mysql-community-client-plugins客户端认证插件mysql-community-libs共享库客户端与服务端共用mysql-community-client命令行工具mysql、mysqldump等mysql-community-icu-data-files国际化数据MySQL 8 必需mysql-community-server数据库服务mysqld可选包devel、test、debuginfo等一般无需安装。1.4 与 yum 在线安装对比方式优点缺点适用RPM Bundle 手动装版本精确、可离线、与官网一致步骤多、依赖需自己处理指定 8.4.9、内网、老系统MySQL Yum 仓库省事、易升级需配 repo、网络能访问官方源的环境二、安装解释2.1 安装顺序为什么固定RPM 之间存在依赖关系server依赖libs、client、icu-data-files等libs又依赖common。逆序安装会报依赖不满足。因此必须按common → client-plugins → libs → client → icu-data-files → server。2.2mysqld --initialize做了什么在数据目录默认/var/lib/mysql/创建系统库、权限表等文件结构为rootlocalhost生成随机临时密码控制台或/var/log/mysqld.log中可见首次启动前必须完成若目录非空会报data directory has files in it2.3 为什么必须chown mysql:mysqlmysqld服务进程以mysql系统用户运行不能读写 root 拥有的数据文件。若--initialize后以 root 执行过操作易出现Error: 13权限不够服务failed。2.4 远程连接的三道关客户端 --TCP 3306-- 防火墙 --允许-- mysqld 监听地址(bind-address) | 用户 host如 root%仅改bind-address不够还需MySQL 用户授权与firewalld/iptables及可能的SELinux。三、完整过程3.1 环境准备操作系统CentOS 7 / RHEL 7MySQL 版本8.4.9LTS安装方式RPM 包手动安装从 tar 包解压3.2 Step 1下载 MySQL 安装包从 MySQL 官网 下载mysql-8.4.9-1.el7.x86_64.rpm-bundle.tar上传到服务器如/opt或/root。3.3 Step 2解压 tar 包tar-xvfmysql-8.4.9-1.el7.x86_64.rpm-bundle.tar解压后得到多个.rpm文件进入该目录进行后续安装。验证ls *.rpm应能看到 common、libs、server 等包。3.4 Step 3卸载系统自带的 MariaDB 库避免冲突# 查看是否已安装rpm-qa|grepmariadb# 强制卸载忽略依赖——包名以实际查询结果为准rpm-e--nodepsmariadb-libs-5.5.60-1.el7_5.x86_64注意包名可能略有不同务必以rpm -qa | grep mariadb输出为准。3.5 Step 4安装依赖工具MySQL 服务启动需要net-tools和perlyuminstall-ynet-tools perl若安装 RPM 时提示libnuma.so.1缺失额外执行yuminstall-ynumactl3.6 Step 5按顺序安装 MySQL RPM 包顺序非常重要进入解压后的目录依次执行rpm-ivhmysql-community-common-8.4.9-1.el7.x86_64.rpmrpm-ivhmysql-community-client-plugins-8.4.9-1.el7.x86_64.rpmrpm-ivhmysql-community-libs-8.4.9-1.el7.x86_64.rpmrpm-ivhmysql-community-client-8.4.9-1.el7.x86_64.rpmrpm-ivhmysql-community-icu-data-files-8.4.9-1.el7.x86_64.rpmrpm-ivhmysql-community-server-8.4.9-1.el7.x86_64.rpm可选包devel、test、debuginfo 等无需安装。3.7 Step 6初始化数据库mysqld--initialize--console执行后会生成临时root密码务必复制保存。示例输出[Note] A temporary password is generated for rootlocalhost: aS!F_LC24NJ若控制台无输出请查看/var/log/mysqld.loggreptemporary password/var/log/mysqld.log若报错data directory has files in it说明/var/lib/mysql/非空见 五、避坑总结 问题 3。3.8 Step 7修正数据目录权限初始化后数据目录/var/lib/mysql/下文件所有者可能为root需改为mysql用户chown-Rmysql:mysql /var/lib/mysql/3.9 Step 8启动 MySQL 服务并设置开机自启systemctl start mysqld systemctlenablemysqld systemctl status mysqld# 确认状态为 active (running)3.10 Step 9登录并修改 root 密码使用临时密码登录mysql-uroot-p# 输入临时密码如 aS!F_LC24NJ进入 MySQL 命令行后执行ALTERUSERrootlocalhostIDENTIFIEDBY你的新强密码;FLUSHPRIVILEGES;EXIT;MySQL 8 默认启用密码策略新密码需足够复杂大小写、数字、特殊字符等否则ALTER USER可能失败。3.11 Step 10配置远程访问可选10.1 授权 root 用户允许任意 IP 连接CREATEUSERroot%IDENTIFIEDBY你的密码;GRANTALLPRIVILEGESON*.*TOroot%WITHGRANTOPTION;FLUSHPRIVILEGES;生产建议不要长期使用root%应创建业务专用账号并最小权限授权。10.2 开放防火墙 3306 端口firewall-cmd--zonepublic --add-port3306/tcp--permanentfirewall-cmd--reload10.3 检查 bind-address查看/etc/my.cnf中是否有bind-address127.0.0.1若有注释掉或改为bind-address0.0.0.0若无默认通常已监听所需接口以实际my.cnf与ss -lntp | grep 3306为准10.4 重启 MySQL 使配置生效systemctl restart mysqld10.5 测试远程连接在其他机器上用客户端DataGrip、Navicat或命令行mysql-h服务器IP-uroot-p3.12 最终验证检查项命令本地登录mysql -uroot -p远程登录mysql -h 服务器IP -uroot -p服务状态systemctl status mysqld查看版本mysql --version四、场景应用场景 1 后端本地联调库需求在 CentOS 7 测试机上为 FastAPI、Django、LangChain 等应用提供持久化存储方案按本文安装 MySQL 8.4.9创建业务库与用户应用连接串指向内网 IP:3306收益版本与生产一致避免「开发用 SQLite、上线用 MySQL」的语法差异场景 2内网离线或弱网服务器需求服务器无法访问外网 yum 源但必须固定8.4.9版本方案在有网机器下载rpm-bundle.tar拷贝到目标机走 RPM 手动安装全流程收益安装包可审计、可归档满足合规与版本锁定场景 3从 MariaDB 迁移到 MySQL 8.4需求原系统依赖 CentOS 自带 MariaDB现需 MySQL 8.4 特性如窗口函数、JSON、认证插件方案先--nodeps卸载mariadb-libs再装 MySQL Bundle数据迁移用mysqldump或逻辑复制迁移前务必备份收益统一技术栈便于与云 RDS MySQL 8.4 对齐五、开发避坑总结高频错误5.1 常见问题及解决方案保留原笔记全部案例问题 1rpm -e mariadb-libs提示依赖错误现象无法卸载提示被其他包依赖原因其他 RPM 声明依赖mariadb-libs解决使用--nodeps强制卸载rpm-e--nodepsmariadb-libs包名以rpm -qa | grep mariadb为准。问题 2安装 RPM 包时提示libnuma.so.1缺失原因未安装 NUMA 相关库解决yuminstall-ynumactl问题 3mysqld --initialize --console没有输出或报错 data directory has files in it原因数据目录/var/lib/mysql/非空可能之前已初始化过解决优先查看日志获取已有临时密码grep temporary password /var/log/mysqld.log若确需重新初始化会清空数据rm-rf/var/lib/mysql/* mysqld--initialize--consolechown-Rmysql:mysql /var/lib/mysql/问题 4启动失败systemctl status mysqld显示 Error: 13权限不够现象Active: failed日志提示权限问题原因/var/lib/mysql/或其中文件所有者为root而mysqld以mysql用户运行解决chown-Rmysql:mysql /var/lib/mysql/ systemctl start mysqld问题 5远程连接报Host xxx is not allowed to connect原因root仅允许localhost未授权远程 host解决按上文10.1创建root%或单独业务用户或修改现有用户的host字段问题 6远程连接超时或拒绝连接可能原因防火墙未开放3306MySQL 绑定了127.0.0.1SELinux阻止解决开放防火墙端口见 10.2检查/etc/my.cnf中bind-address临时测试setenforce 0生产环境不建议永久关闭 SELinux应配置正确策略5.2 最佳实践安装前对重要数据全量备份rm -rf /var/lib/mysql/*仅用于确定可丢弃的空库环境记录并妥善保管临时密码首次登录后立即ALTER USER生产环境使用独立业务账号 最小权限避免root%改配置后习惯systemctl restart mysqld并用tail -f /var/log/mysqld.log观察启动日志CentOS 7 已 EOL新环境优先考虑Rocky/Alma 8或容器化 MySQL本文适用于必须留在 el7 的场景附录常用 MySQL 管理命令操作命令启动服务systemctl start mysqld停止服务systemctl stop mysqld重启服务systemctl restart mysqld查看服务状态systemctl status mysqld查看错误日志tail -f /var/log/mysqld.log修改 root 密码ALTER USER rootlocalhost IDENTIFIED BY 新密码;创建用户并授权CREATE USER user% IDENTIFIED BY pwd; GRANT ALL ON *.* TO user%;刷新权限FLUSH PRIVILEGES;本文为 MY_TRUCK 原创实战学习笔记持续更新 Java 后端与 AI 应用领域干货问题欢迎评论区交流。

相关文章:

【2026最新版Linux安装Mysql】CentOS 7 安装 MySQL 8.4.9 完整流程(RPM 手动安装+避坑+面试)

前言:本文记录在 CentOS 7 / RHEL 7 上,通过官网 RPM Bundle tar 包手动安装 MySQL 8.4.9(LTS) 的完整可复现流程。适合需要在老版本 CentOS 上部署 MySQL、为 Python/AI 后端或 Java 项目准备数据库环境的读者。读完可按步骤完成…...

Perplexity财经数据查询失效的4个致命信号,第3个95%用户仍在踩坑——附权威校验脚本(Python版)

更多请点击: https://kaifayun.com 第一章:Perplexity财经数据查询失效的4个致命信号,第3个95%用户仍在踩坑——附权威校验脚本(Python版) 信号一:HTTP状态码非200但响应体含“success”: true Perplexit…...

PNetLab-vs-EVE-NG安全性分析

1 PNetLab vs EVE-NG社区版:从一次CVE看"免费fork"的安全代价 1.1 痛点引入 2025年11月,CVE-2025-63749被公开披露——PNetLab 5.3.11存在命令注入漏洞,攻击者通过qemu_options参数注入$(/bin/bash -c reverse_shell),…...

毕业设计 深度学习多目标跟踪 实时检测

文章目录 0 前言2 目标跟踪效果3 目标跟踪的两种方法3.1 方法13.2 方法2 4 Tracking By Detecting的跟踪过程4.1 存在的问题4.2 基于轨迹预测的跟踪方式 5 训练代码6 最后 0 前言 🔥 今天学长向大家分享一个毕业设计项目 为了大家能够顺利以及最少的精力通过毕设&…...

TP-LINK AX300 网卡驱动

TP-LINK AX300无线网卡的驱动一直不更新,只好自己动手 适配:TL-XDN6000H 免驱版 操作系统:Ubuntu 24.04.4 LTS 内核版本:6.17.0-29-generic #29~24.04.1-Ubuntu https://download.csdn.net/download/zzzhy/92882718...

6 个 AI Agent Skill 实战推荐:每天省出 2 小时的自动化方案

引言Agent 能帮我们做的事越来越多 -- 写文案、做封面、盯数据、找选题。但很多人装上 Agent 之后发现,它除了聊天和写几段文案,好像什么也干不了。问题不在 Agent。就像刚买回来的手机,没装 App 之前就是块砖。Agent 出厂自带的能力有限&…...

避开CASA模型NPP估算的那些坑:我的IDL代码调试与参数优化心得

避开CASA模型NPP估算的那些坑:我的IDL代码调试与参数优化心得 第一次用CASA模型估算NPP时,我对着屏幕上的异常结果发呆了半小时——明明按照教程一步步操作,为什么输出的NPP值会出现大面积负值?后来才发现,温度胁迫因子…...

RAG夺命10连问,你能抗住第几问?

前言最近金三银四,很多小伙伴在准备大厂面试,几乎每个人都被问到了同一个技术点——RAG(检索增强生成)。从阿里到字节,从腾讯到美团,RAG已经成为大模型应用方向必考的“压轴题”。但是,很多求职…...

高并发下是先写数据库,还是先写缓存?

前言 数据库和缓存(比如:redis)双写数据一致性问题,是一个跟开发语言无关的公共问题。尤其在高并发的场景下,这个问题变得更加严重。 我很负责的告诉你,该问题无论在面试,还是工作中遇到的概率…...

G101EVT05.1友达液晶屏10.1寸LCD工业电阻触摸液晶屏幕

G101EVT05.1 G101EVT05.1是友达AUO的一款10.1英寸工业触摸液晶屏模组。公开资料显示,这款屏采用1280800分辨率、16:10比例、400cd/m典型亮度、LVDS接口、WLED背光、投射式电容触摸屏PCAP,整体更偏向工业平板、HMI、人机界面、医疗终端、嵌入式控制设备&a…...

开启AI端侧能源新纪元 豪鹏科技亮相CIBF 2026

导读:豪鹏科技锚定“AI端侧电池固态电池”双轮驱动核心路径,完成从传统电池制造商到AI端侧能源引领者的跨越式转型,以硬核技术与前瞻布局,领航端侧能源产业迈向高质量发展新征程。以下为文章正文:图片来源于电池百人会…...

Perplexity图标搜索效率提升300%:从零配置到精准获取的5步实战工作流

更多请点击: https://kaifayun.com 第一章:Perplexity图标资源搜索 在构建与 Perplexity AI 集成的前端应用或开发调试工具时,获取其官方图标资源是品牌一致性与用户体验的关键环节。Perplexity 官方未提供公开的图标下载中心,但…...

别再让烙铁头‘烧死’了!手把手教你电烙铁日常保养与复活术(附温度设置建议)

电烙铁头养护全攻略:从氧化原理到实战修复技巧 1. 烙铁头氧化背后的科学原理 烙铁头氧化并非单纯由高温引起,而是高温与氧气共同作用的结果。当烙铁头暴露在空气中时,高温会加速金属表面与氧气的化学反应,形成一层致密的氧化层。这…...

告别抓包烦恼:用Mitmproxy + Python脚本自动解密App接口数据(保姆级实战)

移动端App接口数据解密实战:Mitmproxy与Python自动化逆向分析 在移动应用安全测试和逆向工程领域,App与服务器之间的加密通信一直是分析人员的重点攻克对象。当面对一个网络请求被深度加密的App时,传统抓包工具往往只能展示一堆"乱码&qu…...

Hyper-V虚拟机文件迁移避坑指南:从C盘挪走Ubuntu,释放系统盘空间

Hyper-V虚拟机文件迁移实战:安全释放C盘空间的完整方案 当你在Windows系统上使用Hyper-V运行Ubuntu虚拟机时,是否注意到C盘空间正在被悄悄吞噬?许多技术爱好者初次接触Hyper-V时,往往直接采用默认设置,将所有虚拟机文件…...

别再只会调库了!用NumPy手搓SMOTE算法,从原理到代码保姆级拆解

从零实现SMOTE算法:用NumPy彻底掌握类别不平衡处理技术 在数据科学项目中,我们常常会遇到类别不平衡问题——某些类别的样本数量远少于其他类别。这种不平衡会导致模型过度关注多数类而忽略少数类。传统解决方案如随机过采样可能引发过拟合,而…...

告别日志脱敏烦恼:手把手教你用sensitive注解优雅保护用户隐私数据

优雅实现日志脱敏:基于注解的隐私数据保护实战指南 在金融、电商等强合规领域,用户隐私数据保护早已从"可选"变为"必选"。每次看到同事在代码中手动拼接"手机号:"user.getPhone().substring(0,3)"****&qu…...

tRPC全栈类型安全实战

tRPC全栈类型安全实战:告别API类型地狱,TypeScript前后端零成本类型共享 摘要:在全栈TypeScript项目中,前后端类型不同步是最常见的Bug来源之一。tRPC通过编译时类型推导,实现了端到端的类型安全——前端调用后端API就像调用本地函数一样,类型自动推导、错误提前暴露。本…...

Perplexity症状查询功能性能对比白皮书:横向测试12家竞品,它在罕见病关键词召回率上领先41.6%,但时间敏感场景响应超时率达23.8%

更多请点击: https://intelliparadigm.com 第一章:Perplexity症状查询功能概览 Perplexity 是一款面向开发者与临床信息学研究人员设计的轻量级症状语义推理工具,其核心能力在于将自然语言描述的症状短语映射至标准化医学本体(如…...

紧急!你的灵感工作流正在被Perplexity范式淘汰:3个信号预警+2天迁移 checklist(含Prompt审计表)

更多请点击: https://codechina.net 第一章:紧急!你的灵感工作流正在被Perplexity范式淘汰:3个信号预警2天迁移 checklist(含Prompt审计表) 当你反复修改同一个提示词却仍得不到结构化输出,当团…...

TVBox 最新版本 | 接口持续更新 | 追剧稳定不失效

分享一个自用很久、一直在持续维护更新的 TVBox 版本,主打稳定、流畅、长期可用,接口会定期更新,避免失效问题。 🔥资源特点 精准区分 64 位新设备 / 32 位老设备,安装更适配全设备兼容:电视、盒子、手机…...

技术文档检索总失败?Perplexity的chunking策略、embedding模型选型与rerank阈值调优(附实测Benchmark数据)

更多请点击: https://codechina.net 第一章:技术文档检索总失败?Perplexity的chunking策略、embedding模型选型与rerank阈值调优(附实测Benchmark数据) 技术文档检索失败常源于文本切分不合理、语义表征能力不足或重排…...

深度解读|当增强现实遇上美妆教学:帕克西的AR美妆实训解决方案

在职业院校的形象设计、美容化妆等专业中,实训教学长期面临耗材成本高、练习机会有限、考核标准难量化等难题。学生每练习一次就消耗一次化妆品;教师逐个检查妆容步骤,费时费力。 增强现实(AR)技术的介入,正…...

GitHub项目改名后,本地仓库如何无缝衔接?保姆级操作指南(含常见错误排查)

GitHub项目改名后本地仓库无缝衔接全攻略:从原理到实战 当你兴冲冲地在GitHub上给项目改了个更酷的名字,回到命令行却看到一堆红色报错信息时,那种感觉就像搬家后发现自己忘带钥匙。本文将带你深入理解Git远程仓库的连接机制,并提…...

告别GUI框架:在嵌入式Linux上用framebuffer手撸一个简易绘图库(附完整代码)

告别GUI框架:在嵌入式Linux上用framebuffer手撸一个简易绘图库 在资源受限的嵌入式Linux环境中,图形界面开发往往面临两难选择:要么使用Qt、SDL等重型框架消耗宝贵的内存和CPU资源,要么放弃图形功能转向纯命令行交互。本文将为开发…...

别只盯着TPS!用JMeter汇总报告做一次完整的性能瓶颈分析实战

别只盯着TPS!用JMeter汇总报告做一次完整的性能瓶颈分析实战 在性能测试领域,JMeter的汇总报告(Summary Report)是最常用的监听器之一,但很多测试工程师往往只关注其中的TPS(每秒事务数)指标&am…...

终极指南:如何一键重置JetBrains IDE试用期,免费获得全新30天评估时间

终极指南:如何一键重置JetBrains IDE试用期,免费获得全新30天评估时间 【免费下载链接】ide-eval-resetter 项目地址: https://gitcode.com/gh_mirrors/id/ide-eval-resetter JetBrains IDE试用期重置是每个开发者都需要的实用技能,当…...

避坑指南:在Docker里部署OpenWrt做软路由,这几个macvlan和网络配置的坑你别踩

DockerOpenWrt软路由避坑实战:macvlan网络疑难解析与高阶配置 当你在双网口服务器上尝试用Docker部署OpenWrt软路由时,是否经历过这样的绝望时刻:所有配置看似正确,但客户端设备就是无法上网;宿主机与容器仿佛身处平行…...

IDEA里Git冲突别慌!手把手教你用Rebase和Merge搞定,附代码消失急救指南

IDEA中Git冲突与代码消失的终极解决方案:Rebase与Merge实战指南 在团队协作开发中,Git冲突如同程序员日常的"必修课",而IDEA作为Java开发者最信赖的IDE,其内置的Git工具链却常被低估。当你在深夜赶进度时突然遭遇冲突警…...

亚马逊英国站儿童挤压玩具

亚马逊英国站儿童挤压玩具,核心定位为3岁以上儿童设计的感官类玩具,主打触觉反馈与手部精细动作锻炼,是平台上受众较广的儿童玩具品类之一,其核心特点与平台合规要求需重点关注。产品核心特征方面,这类玩具多采用热塑性…...