新闻中心

mysql如何在linux上通过yum安装

2025-09-18
浏览次数:
返回列表
答案:通过Yum安装MySQL推荐使用官方Yum仓库,依次下载并安装MySQL Yum Repository RPM包、选择并启用所需MySQL版本、安装MySQL服务器、启动服务并设置开机自启、执行mysql_secure_installation安全初始化;该方式相比手动编译和Docker更便于维护、依赖管理和系统集成,适合生产环境部署;常见问题包括仓库配置错误、与MariaDB冲突、服务无法启动等,可通过检查仓库状态、卸载冲突包、查看日志等方式解决;后续管理通过systemctl控制服务、yum update升级、合理配置my.cnf及定期备份恢复确保稳定运行。

mysql如何在linux上通过yum安装

在Linux系统上通过yum安装MySQL,最直接且推荐的方式是利用MySQL官方提供的Yum仓库。这样不仅能确保你安装的是官方稳定版本,还能方便后续的更新和维护,省去了手动编译的诸多麻烦。

解决方案

要在Linux上通过yum安装MySQL,通常涉及以下几个核心步骤。我个人觉得,这套流程相对而言是最稳妥,也最能避免各种奇奇怪怪依赖问题的。

  1. 下载并安装MySQL Yum Repository RPM包: 这是第一步,也是关键一步。你需要从MySQL官方网站下载对应你Linux发行版的Yum仓库配置RPM包。比如,对于CentOS/RHEL 8,你可能会找到一个类似

    mysql80-community-release-el8-x.noarch.rpm
    的文件。
    wget https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm
    然后安装这个RPM包,它会将MySQL的官方仓库配置添加到你的系统里:
    sudo rpm -Uvh mysql80-community-release-el8-1.noarch.rpm
    执行完这步,你就可以通过
    yum repolist all | grep mysql
    查看现在系统里有哪些MySQL相关的仓库是可用的。你会看到诸如
    mysql80-community
    mysql57-community
    等,默认情况下,最新的版本(比如8.0)是启用的。

  2. 选择并启用你想要的MySQL版本(如果需要): 如果你想安装MySQL 5.7而不是默认的8.0,就需要先禁用8.0的仓库,然后启用5.7的。这可以通过编辑

    /etc/yum.repos.d/mysql-community.repo
    文件来完成,或者使用
    yum-config-manager
    工具:
    sudo yum-config-manager --disable mysql80-community
    sudo yum-config-manager --enable mysql57-community
    我通常建议在生产环境里,版本选择要慎重,不要盲目追求最新,而是选择一个经过充分验证的稳定版本。

  3. 安装MySQL服务器: 仓库配置好,版本也选定了,现在就可以安装MySQL服务器了。

    sudo yum install mysql-community-server
    这个命令会拉取所有必要的依赖包并安装MySQL服务。整个过程可能需要一些时间,取决于你的网络速度。

  4. 启动MySQL服务并设置为开机自启: 安装完成后,MySQL服务并不会自动启动。你需要手动启动它,并配置为系统启动时自动运行。

    sudo systemctl start mysqld
    sudo systemctl enable mysqld
    你可以通过
    sudo systemctl status mysqld
    来检查服务状态。如果一切正常,它会显示
    active (running)

  5. 执行安全初始化: 这是非常重要的一步。新安装的MySQL服务会生成一个临时root密码,并有一些不安全的默认设置。你需要运行

    mysql_secure_installation
    脚本来修改密码、移除匿名用户、禁止root远程登录等。
    sudo mysql_secure_installation
    脚本会引导你一步步完成设置。在MySQL 8.0中,临时密码通常在
    /var/log/mysqld.log
    文件中,你可以用
    sudo grep 'temporary password' /var/log/mysqld.log
    找到它。记住,这个密码必须立即修改掉。我见过太多因为跳过这步导致安全隐患的案例了。

为什么选择通过Yum安装MySQL,而不是手动编译或Docker容器?

选择通过Yum安装MySQL,在我看来,更多是出于一种实用主义的考量。它在便利性、维护性和系统集成度之间找到了一个很好的平衡点。

首先,便利性是显而易见的。一个

yum install
命令就能搞定所有依赖和配置,这比手动编译要省心太多了。手动编译虽然能让你对MySQL的每个编译选项都了如指掌,甚至能针对特定硬件进行优化,但那个过程复杂且容易出错,尤其是当你面对各种库版本冲突时,简直是噩梦。我个人在非极端性能需求的项目中,几乎不会考虑手动编译,时间成本太高。

其次是维护性。通过Yum安装的MySQL,其版本升级、补丁安装都变得异常简单,一个

yum update
就能解决大部分问题。包管理器会处理好新旧版本的替换和依赖更新,大大降低了维护的复杂度。而手动编译的版本,每次升级都像是在重新安装,需要你手动下载新版本、重新编译、重新配置,稍有不慎就可能破坏现有环境。这种心力交瘁的感觉,谁经历过谁知道。

再来说说Docker容器。Docker当然有它的优势,比如环境隔离、快速部署、跨平台一致性。对于开发环境或者微服务架构,Docker容器化MySQL是非常好的选择。但如果你是在一个传统的、基于Linux的服务器上部署核心数据库服务,并且希望数据库能更“贴近”系统本身,享受操作系统级别的性能优化和资源调度,那么直接通过Yum安装可能会更合适。容器化会引入一层虚拟化开销,虽然现代Docker技术已经将这层开销降到很低,但对于某些对I/O性能和延迟极其敏感的应用,直接安装可能会有微弱的优势。此外,对于不熟悉Docker的运维人员来说,直接安装也更容易上手和排查问题。

总的来说,Yum安装提供了一个“刚刚好”的解决方案:足够简单,足够稳定,也足够灵活。

安装过程中可能遇到的常见问题及解决思路

在通过Yum安装MySQL的过程中,虽然大部分时候都很顺利,但总会遇到一些让人头疼的小插曲。我根据自己的经验,列举几个常见的,希望能帮到你。

网奇IOS智能在线订单系统 网奇IOS智能在线订单系统

产品简介: 网奇IOS智能订单系统,是网奇公司研发的一款智能在线订单编辑以及管理系统。本系统适合使用在;在线报名、酒店预定、信息反馈、在线订单和在线投诉等等诸多应用上。本系统所有选项字段完全通过后台控制,在线报名系统可以变为在线预定系统,同时可以变为任何其它的系统,里面的栏目字段,可以任意添加、删除、 修改。本系统为网奇公司全国独家首创,顺应网络需求,安装十分便利,上传即可使用。产品特色:

网奇IOS智能在线订单系统 0 查看详情 网奇IOS智能在线订单系统
  1. Yum仓库配置问题:

    • 现象:
      yum install mysql-community-server
      时提示“No match for argument: mysql-community-server”或“Nothing to do”。
    • 原因: 最常见的是MySQL Yum Repository RPM包没有正确安装,或者安装了但没有启用对应的版本仓库。也可能是网络问题,导致无法访问MySQL的Yum源。
    • 解决思路:
      • 再次确认RPM包是否安装成功:
        sudo rpm -qa | grep mysql-community-release
        。如果没有,重新下载并安装。
      • 检查仓库是否启用:
        yum repolist all | grep mysql
        。确保你想要安装的版本对应的仓库是
        enabled
        状态。如果不是,使用
        sudo yum-config-manager --enable <repo_id>
        启用。
      • 清除Yum缓存:
        sudo yum clean all && sudo yum makecache
        ,然后重试安装。
  2. 与MariaDB冲突:

    • 现象: 在一些Linux发行版(如CentOS 7默认自带MariaDB)上,安装MySQL时可能会提示文件冲突,或者安装完成后启动的是MariaDB而不是MySQL。
    • 原因: MariaDB是MySQL的一个分支,它们使用很多相同的文件路径和包名,导致冲突。
    • 解决思路:
      • 在安装MySQL之前,彻底卸载系统上已有的MariaDB相关包:
        sudo yum remove mariadb-libs mariadb-server mariadb
        sudo rm -rf /var/lib/mysql
        (如果确定没有重要数据)
      • 然后按照上述步骤重新安装MySQL。
  3. MySQL服务无法启动:

    • 现象:
      sudo systemctl start mysqld
      后,服务状态显示
      failed
      inactive
    • 原因: 这可能是多种原因造成的,比如数据目录权限问题、配置文件错误、内存不足、或者是
      /var/log/mysqld.log
      中记录的其他错误。
    • 解决思路:
      • 查看日志是第一步,也是最重要的一步。 使用
        sudo journalctl -xe | grep mysqld
        或直接查看MySQL错误日志文件:
        sudo cat /var/log/mysqld.log
        。错误日志会告诉你具体哪里出了问题。
      • 检查数据目录权限: 确保
        /var/lib/mysql
        及其子目录的所有者是
        mysql
        用户和
        mysql
        组,并且权限正确。
        sudo chown -R mysql:mysql /var/lib/mysql
      • 检查配置文件: 默认情况下,
        /etc/my.cnf
        /etc/mysql/my.cnf.d/
        下的配置文件通常不会有问题。但如果你手动修改过,检查是否有语法错误或配置冲突。
      • SELinux/防火墙: SELinux有时会阻止MySQL访问某些目录或端口。你可以尝试临时禁用SELinux (
        sudo setenforce 0
        )看看问题是否解决。如果是,需要配置SELinux策略。防火墙(
        firewalld
        iptables
        )也可能阻止外部连接,但通常不会阻止服务启动。
  4. 忘记临时root密码或

    mysql_secure_installation
    无法执行:

    • 现象: 找不到临时密码,或者在执行安全脚本时遇到问题。
    • 原因: 临时密码可能被日志轮转了,或者文件权限问题。
    • 解决思路:
      • 重置root密码: 这是最彻底的方法。
        1. 停止MySQL服务:
          sudo systemctl stop mysqld
        2. 以跳过授权表的方式启动MySQL:
          sudo mysqld_safe --skip-grant-tables &
        3. 连接到MySQL:
          mysql -u root
        4. 在MySQL命令行中修改密码:
          ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewPassword!';
        5. 刷新权限:
          FLUSH PRIVILEGES;
        6. 退出MySQL,然后停止并正常启动MySQL服务。
      • 我个人觉得,在生产环境,重置密码这种操作要非常谨慎,最好是在维护窗口进行。

如何管理和维护通过Yum安装的MySQL服务?

通过Yum安装的MySQL,其管理和维护工作变得相对标准化和简便。这正是包管理器的魅力所在。

  1. 服务的启停与状态管理: 这部分主要依赖

    systemctl
    命令,它是管理systemd服务的标准工具。

    • 启动服务:
      sudo systemctl start mysqld
    • 停止服务:
      sudo systemctl stop mysqld
    • 重启服务:
      sudo systemctl restart mysqld
    • 查看服务状态:
      sudo systemctl status mysqld
    • 设置开机自启:
      sudo systemctl enable mysqld
    • 禁止开机自启:
      sudo systemctl disable mysqld
      这些命令是日常运维中最常用的,熟练掌握它们是基本功。
  2. 版本升级与补丁安装: 这是Yum安装的一大优势。当MySQL官方发布新版本或安全补丁时,你可以通过Yum轻松升级。

    • 更新软件包列表:
      sudo yum check-update
    • 升级MySQL服务器:
      sudo yum update mysql-community-server
      在执行升级之前,我强烈建议你先备份数据库,并阅读新版本的发布说明(release notes),以防有不兼容的变更。有时候,大的版本升级(比如从5.7到8.0)可能需要额外的迁移步骤。
  3. 配置文件管理: MySQL的主要配置文件通常位于

    /etc/my.cnf
    ,或者在
    /etc/mysql/my.cnf.d/
    目录下有多个独立的
    .cnf
    文件。

    • 主配置文件:
      /etc/my.cnf
    • 模块化配置:
      /etc/mysql/my.cnf.d/
      下的文件,例如
      mysql-clients.cnf
      mysqld.cnf
      等。 你需要根据你的服务器资源和应用需求来调整这些配置,比如
      innodb_buffer_pool_size
      max_connections
      log_bin
      等。每次修改配置文件后,都需要重启MySQL服务才能生效。在修改之前,最好备份一下原始文件,以防配置错误导致服务无法启动。
  4. 数据备份与恢复: 虽然Yum安装本身不提供备份工具,但它是数据库运维的核心环节。最常用的工具是

    mysqldump

    • 备份整个数据库:
      mysqldump -u root -p --all-databases > all_databases_backup.sql
    • 备份特定数据库:
      mysqldump -u root -p your_database_name > your_database_backup.sql
    • 恢复数据库:
      mysql -u root -p < your_database_backup.sql
      定期自动化备份,并测试恢复流程,这是确保数据安全的关键。
  5. 日志文件查看: MySQL的错误日志、慢查询日志、二进制日志等对于排查问题和性能优化至关重要。

    • 错误日志: 默认路径通常是
      /var/log/mysqld.log
    • 慢查询日志: 需要在配置文件中启用并指定路径。
    • 二进制日志: 同样需要启用,用于数据恢复和主从复制。 学会查看并分析这些日志,能让你在遇到问题时迅速定位原因。

通过Yum安装的MySQL,在管理和维护上确实提供了很大的便利性,它将很多底层细节抽象化,让运维人员能更专注于数据库本身。

以上就是mysql如何在linux上通过yum安装的详细内容,更多请关注其它相关文章!


# 镜像  # 口碑营销推广运营方案  # 个性网站推广  # seo初学者学习营销  # 新乡网站竞价推广电话  # 实体企业线上营销推广  # 烟台定制网站推广公司  # 中原区优化网站排名  # seo教程 百度云  # 赤峰抖音seo费用多少  # 线下营销推广  # 新版本  # 几个  # 本系统  # 多个  # 你可以  # mysql  # 的是  # 离线  # 这是  # linux系  # 配置文件  # ai  # 工具  # 端口  # 防火墙  # 操作系统  # docker  # centos  # word  # linux 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: 自定义Bag-of-Words实现:处理带负号的词汇权重  Win11截图该按哪些键 Win11截屏完整流程解析【教程】  AO3同人作品网入口 AO3搜索引擎官网永久地址  Angular中单选按钮的正确使用与常见陷阱解析  网易大神账号申诉需要多久_网易大神账号申诉流程说明  Mac终端命令大全_Mac常用Terminal指令速查  Go语言中Map存储的结构体如何调用指针方法:深入解析与实践  Golang如何使用context实现超时取消_Golang context超时取消模式实践  消息称三星明年 2 月正式发布 HBM4,与 SK 海力士同台竞技  虚幻5科幻题材ARPG大作遭取消!本是《奇异人生》厂商新作  mc.js免安装版 mc.js一键畅玩入口  写好的html代码怎么运行出来_运行写好的html代码方法【教程】  天眼查企业查询官网入口 天眼查官方网页版查询  win11开机启动修复循环怎么办 Win11无法进入系统高级启动解决方法【修复】  C++编译期如何执行复杂计算_C++模板元编程(TMP)技巧与应用  如何在Promise链中优雅地中断后续then执行  Tabulator表格日期时间排序问题及自定义解决方案  俄罗斯Yandex搜索引擎入口_Yandex官网免登录一键访问  解决macOS Tkinter应用双击启动崩溃:PyInstaller打包指南  Yandex官网搜索引擎免登录_俄罗斯Yandex一键直达入口  谷歌浏览器怎么给标签页静音_Chrome标签静音快捷操作  深入理解Promise链:如何在catch后中断then的执行  Yandex免登录网页版地址 Yandex搜索引擎官方访问入口  qq游戏跨平台入口_qq游戏多设备同步登录  Excel中VLOOKUP的第四个参数是干什么用的_Excel VLOOKUP第四参数作用解析  铃兰之剑为这和平的世界希里技能组及加点推荐  韩小圈电脑版在线入口_网页版免费登录地址  苹果手机如何防止被恶意App追踪  俄罗斯浏览器官网直达链接 俄罗斯浏览器最新在线入口导航  Python异步编程实践:使用Binance API构建实时交易数据流  文心一言怎样用批量生成做多版文案_文心一言用批量生成做多版文案【批量创作】  如何使用纯J*aScript判断Input元素是否在特定类容器内  Golang如何使用const iota_Go iota常量计数器讲解  Win10如何清理注册表垃圾 Win10注册表维护与优化指南【慎用】  CSS条件样式无法按设备触发怎么排查_media条件语句正确设置解决触发问题  深入理解Google Cloud Datastore查询:祖先路径与数据一致性  在React函数组件中利用原生HTML5进行邮箱地址验证  poki网页游戏推荐_poki免费游戏平台入口  狙击外星人小游戏开始_狙击外星人小游戏立即开始  《刺客信条4:黑旗》重制版新细节曝光:无缝加载 地图更细致!  内存疯狂猛猛涨价:主板销量直接腰斩!  汽水音乐网页版使用入口_汽水音乐电脑版播放指南  “在文档元素之后找到了标记”是什么错误? 检查并修复XML中多个根元素的3个方法  为什么简单的XML文件也会解析失败? 检查隐藏的非打印字符(如BOM)的方法  菜鸟取件码是什么怎么查 最全查询渠道汇总  Kafka Streams中基于消息头条件过滤消息的实现指南  在VS Code中配置和运行Dart程序的完整步骤  QQ邮箱官方网站登录入口_QQ邮箱网页版在线使用  漫蛙漫画官方首页 漫蛙2漫画在线阅读入口  马斯克:Optimus 人形机器人复数形式为 Optimi 

搜索