mysql在Linux最小化安装系统中的部署流程

发布时间 - 2026-01-29 00:00:00    点击率:
必须先彻底卸载系统预装的MariaDB,再通过官方Yum Repo安装MySQL 8.0;需禁用密码验证插件后初始化、记录临时密码、授权远程用户并开放防火墙3306端口。

确认系统是否已预装 MariaDB 并彻底卸载

很多 Linux 最小化安装(如 CentOS Stream 8/9、Rocky 9、AlmaLinux 9)默认自带 mariadb-server,它会占用 3306 端口、注册同名 systemd 服务,并与 MySQL 二进制冲突。不先清理会导致 mysqld 启动失败或服务无法识别。

  • 运行 rpm -qa | grep -i mariadb 查看是否安装
  • 若存在,执行 sudo dnf remove mariadb-* --allowerasing(RHEL/CentOS 8+)或 sudo yum remove mariadb*(旧版),并加 --purge 参数(如支持)清除配置和数据目录
  • 手动检查残留:sudo ls /var/lib/mysqlsudo ls /etc/my.cnf*,非空则需 sudo rm -rf /var/lib/mysql /etc/my.cnf*(确保无业务数据)
  • 运行 sudo systemctl list-unit-files | grep mysql,确认无 mariadb.servicemysql.service 残留

使用官方 Yum Repo 安装 MySQL 8.0(推荐方式)

直接下载 RPM 包手动安装易漏依赖、难升级;用 MySQL 官方 repo 可自动解决 libtirpcopenssl11 等最小化系统缺失的依赖,且后续 dnf update 能同步更新。

  • 下载 repo 配置:sudo dnf install https://dev.mysql.com/get/mysql80-community-release-el$(rpm -E %rhel)-$(rpm -E %rhel).noarch.rpm
  • 启用 8.0 社区版(禁用 5.7):sudo dnf-config-manager --disable mysql57-community && sudo dnf-config-manager --enable mysql80-community
  • 安装服务端 + 客户端:sudo dnf install mysql-community-server mysql-community-client
  • 注意:最小化系统常缺 whichnc,可顺带补上:sudo dnf inst

    all which nc

初始化并启动 mysqld,跳过首次密码强度校验

MySQL 8.0 默认启用 validate_password 插件,最小化系统首次初始化时若未预设策略,ALTER USER 会因密码太简单报错 ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

  • 首次启动前,临时禁用密码验证:在 /etc/my.cnf[mysqld] 段下添加 validate_password=OFF
  • 初始化数据目录:sudo mysqld --initialize --user=mysql --datadir=/var/lib/mysql(输出中会显示临时 root 密码,务必记录)
  • 启动服务:sudo systemctl enable --now mysqld
  • 登录并改密:mysql -u root -p → 输入临时密码 → 执行 ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourPass123!';
  • 改完后建议删掉 my.cnf 中的 validate_password=OFF,再 sudo systemctl restart mysqld

开放防火墙并验证远程连接能力

最小化系统默认启用 firewalld 且未放行 3306,即使 bind-address = 0.0.0.0 也连不上;另外 MySQL 8.0 默认只允许本地 socket 连接,需显式授权用户。

  • 放行端口:sudo firewall-cmd --permanent --add-port=3306/tcp && sudo firewall-cmd --reload
  • 创建远程用户(示例):
    CREATE USER 'appuser'@'%' IDENTIFIED BY 'SecurePass456!';
    GRANT SELECT,INSERT,UPDATE ON mydb.* TO 'appuser'@'%';
    FLUSH PRIVILEGES;
  • 确认 bind-address 已设为 0.0.0.0 或注释掉(默认监听所有接口),且 skip-networking 未启用
  • 测试连接:mysql -h -u appuser -p(从另一台机器执行)

MySQL 在最小化系统中最容易卡在 MariaDB 残留和服务启动阶段,尤其是 /var/lib/mysql 目录权限不对(应属 mysql:mysql)或 SELinux 强制限制(可临时 setenforce 0 排查,生产环境需配策略)。别跳过初始化日志里的临时密码——它只出现一次。


# mysql  # linux  # word  # centos  # 防火墙  # app  # 端口  # ssl  # stream  # dnf  # 安装mysql  # Error  # 接口  # var  # mariadb  # https  # 首次  # 跳过  # 尤其是  # 设为  # 自带  # 报错  # 并与  # 它会  # 最容易  # 完后 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 公司网站制作价格怎么算,公司办个官网需要多少钱?  简单实现jsp分页  Win11怎样安装网易有道词典_Win11安装词典教程【步骤】  html5如何设置样式_HTML5样式设置方法与CSS应用技巧【教程】  独立制作一个网站多少钱,建立网站需要花多少钱?  Laravel N+1查询问题如何解决_Eloquent预加载(Eager Loading)优化数据库查询  laravel怎么实现图片的压缩和裁剪_laravel图片压缩与裁剪方法  Laravel如何正确地在控制器和模型之间分配逻辑_Laravel代码职责分离与架构建议  Laravel如何编写单元测试和功能测试?(PHPUnit示例)  Android实现代码画虚线边框背景效果  Laravel怎么配置自定义表前缀_Laravel数据库迁移与Eloquent表名映射【步骤】  如何实现建站之星域名转发设置?  Claude怎样写结构化提示词_Claude结构化提示词写法【教程】  魔方云NAT建站如何实现端口转发?  Linux安全能力提升路径_长期防护思维说明【指导】  如何在企业微信快速生成手机电脑官网?  Internet Explorer官网直接进入 IE浏览器在线体验版网址  Laravel Sail是什么_基于Docker的Laravel本地开发环境Sail入门  如何在Windows服务器上快速搭建网站?  EditPlus 正则表达式 实战(3)  免费网站制作appp,免费制作app哪个平台好?  高防服务器租用首荐平台,企业级优惠套餐快速部署  常州企业网站制作公司,全国继续教育网怎么登录?  佛山企业网站制作公司有哪些,沟通100网上服务官网?  如何在IIS中新建站点并解决端口绑定冲突?  Laravel如何实现数据库事务?(DB Facade示例)  黑客入侵网站服务器的常见手法有哪些?  北京网页设计制作网站有哪些,继续教育自动播放怎么设置?  Windows家庭版如何开启组策略(gpedit.msc)?(安装方法)  Laravel如何处理CORS跨域请求?(配置示例)  微信h5制作网站有哪些,免费微信H5页面制作工具?  Java类加载基本过程详细介绍  移动端脚本框架Hammer.js  Laravel模型关联查询教程_Laravel Eloquent一对多关联写法  Win11任务栏卡死怎么办 Windows11任务栏无反应解决方法【教程】  悟空浏览器如何设置小说背景色_悟空浏览器背景色设置【方法】  Midjourney怎么调整光影效果_Midjourney光影调整方法【指南】  Laravel如何使用Service Container和依赖注入?(代码示例)  如何在VPS电脑上快速搭建网站?  网站制作大概多少钱一个,做一个平台网站大概多少钱?  Laravel如何配置任务调度?(Cron Job示例)  Laravel如何使用Service Provider注册服务_Laravel服务提供者配置与加载  如何快速搭建高效WAP手机网站吸引移动用户?  JS弹性运动实现方法分析  Win11怎么恢复误删照片_Win11数据恢复工具使用【推荐】  Laravel如何获取当前登录用户信息_Laravel Auth门面使用与Session用户读取【技巧】  Laravel如何集成第三方登录_Laravel Socialite实现微信QQ微博登录  制作旅游网站html,怎样注册旅游网站?  如何为不同团队 ID 动态生成多个“认领值班”按钮  Python自动化办公教程_ExcelWordPDF批量处理案例