首页/新闻资讯/正文详情

Linux系统MySQL安装指南:三种方法详解

发布时间:2026/11/4 5:01:08 来源:云帆数科 栏目:资讯中心
Linux系统MySQL安装指南:三种方法详解
1. Linux系统MySQL安装方案概述作为数据库管理员和Linux系统运维工程师MySQL的安装部署是最基础也最关键的技能之一。在Linux环境下我们主要有三种安装MySQL的方式通过MariaDB源安装、使用官方Yum源安装以及二进制包手动安装。每种方式都有其适用场景和优缺点需要根据实际生产环境需求进行选择。我在过去五年的运维工作中这三种安装方式都实践过数十次遇到过各种坑也总结了不少经验。本文将详细解析每种安装方式的具体步骤、原理和注意事项帮助初学者快速掌握MySQL在Linux系统上的部署方法同时也会分享一些只有实际运维过才会知道的小技巧。2. 通过MariaDB源安装MySQL2.1 MariaDB与MySQL的关系MariaDB是MySQL的一个分支由MySQL的原始开发者创建完全兼容MySQL的命令、接口和API。在大多数情况下我们可以直接使用MariaDB替代MySQL这也是很多Linux发行版默认提供MariaDB而不是MySQL的原因。注意虽然MariaDB兼容MySQL但在某些高级功能和性能优化上还是存在差异。如果项目对MySQL有严格要求建议还是使用官方MySQL。2.2 使用国内源安装MariaDB国内用户建议使用国内镜像源加速下载这里以阿里云源为例# 备份原有repo文件 sudo cp /etc/yum.repos.d/MariaDB.repo /etc/yum.repos.d/MariaDB.repo.bak # 添加阿里云MariaDB源 sudo tee /etc/yum.repos.d/MariaDB.repo EOF [mariadb] name MariaDB baseurl https://mirrors.aliyun.com/mariadb/yum/10.2/centos7-amd64/ gpgkey https://mirrors.aliyun.com/mariadb/yum/RPM-GPG-KEY-MariaDB gpgcheck 1 EOF2.3 清理缓存并安装# 清除yum缓存 sudo yum clean all sudo yum makecache # 安装MariaDB 10.2 sudo yum install -y MariaDB-server MariaDB-client2.4 启动服务与初始化# 启动服务并设置开机自启 sudo systemctl start mariadb sudo systemctl enable mariadb # 运行安全安装脚本 sudo mysql_secure_installation在执行安全安装脚本时会提示进行以下配置设置root密码移除匿名用户禁止root远程登录移除测试数据库重新加载权限表2.5 完全卸载MariaDB如果需要完全卸载MariaDB必须彻底删除相关文件和配置# 停止服务 sudo systemctl stop mariadb # 卸载软件包 sudo yum remove -y MariaDB* # 删除配置文件 sudo rm -rf /etc/my.cnf /etc/my.cnf.d/ # 删除数据目录 sudo rm -rf /var/lib/mysql/重要提示删除数据目录前请确保已备份重要数据此操作不可逆。3. 使用Yum源安装官方MySQL3.1 添加MySQL官方Yum源MySQL官方提供了Yum仓库我们可以直接使用# 下载MySQL 5.7的repo包 sudo wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm # 安装repo包 sudo rpm -ivh mysql57-community-release-el7-11.noarch.rpm-ivh参数解释i安装v显示详细信息h显示进度条3.2 管理仓库版本默认情况下会启用MySQL 8.0仓库我们需要禁用8.0并启用5.7# 安装yum-utils工具 sudo yum install -y yum-utils # 列出所有可用版本 sudo yum repolist all | grep mysql # 禁用8.0版本 sudo yum-config-manager --disable mysql80-community # 启用5.7版本 sudo yum-config-manager --enable mysql57-community # 验证启用状态 sudo yum repolist enabled | grep mysql3.3 安装MySQL 5.7# 安装MySQL服务器 sudo yum install -y mysql-community-server # 启动服务 sudo systemctl start mysqld sudo systemctl enable mysqld3.4 获取初始密码并修改MySQL 5.7安装后会为root用户生成一个临时密码# 查看临时密码 sudo grep temporary password /var/log/mysqld.log # 使用临时密码登录 mysql -uroot -p # 修改密码 ALTER USER rootlocalhost IDENTIFIED BY 新密码;注意MySQL 5.7默认启用了密码强度验证插件密码必须包含大小写字母、数字和特殊字符长度至少8位。4. 二进制包方式安装MySQL4.1 下载二进制包二进制安装方式适合需要自定义安装路径和配置的场景# 下载MySQL 5.7二进制包 wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.37-linux-glibc2.12-x86_64.tar.gz # 解压到/usr/local目录 sudo tar -zxvf mysql-5.7.37-linux-glibc2.12-x86_64.tar.gz -C /usr/local/4.2 创建MySQL用户和组# 创建mysql用户组和用户 sudo groupadd mysql sudo useradd -r -g mysql -s /bin/false mysql # 创建软链接 cd /usr/local sudo ln -s mysql-5.7.37-linux-glibc2.12-x86_64 mysql4.3 初始化MySQL# 创建数据目录 sudo mkdir -p /data/mysql sudo chown -R mysql:mysql /data/mysql # 初始化数据库 cd /usr/local/mysql sudo bin/mysqld --initialize --usermysql --basedir/usr/local/mysql --datadir/data/mysql初始化后会显示root用户的临时密码务必记下。4.4 配置MySQL服务# 创建配置文件 sudo tee /etc/my.cnf EOF [mysqld] basedir/usr/local/mysql datadir/data/mysql socket/tmp/mysql.sock [mysql] socket/tmp/mysql.sock EOF # 创建服务脚本 sudo cp support-files/mysql.server /etc/init.d/mysqld sudo chmod x /etc/init.d/mysqld # 启动服务 sudo service mysqld start4.5 设置环境变量# 编辑/etc/profile文件 sudo tee -a /etc/profile EOF export PATH/usr/local/mysql/bin:\$PATH EOF # 使配置生效 source /etc/profile5. 三种安装方式对比与选择建议5.1 特性对比特性MariaDB源安装Yum源安装二进制安装安装难度简单简单复杂定制性低低高版本选择有限可选灵活升级维护方便方便手动适用场景快速部署生产环境定制需求5.2 选择建议开发测试环境推荐使用MariaDB源安装简单快捷生产环境建议使用Yum源安装官方MySQL便于维护特殊需求如需要特定路径、多实例等选择二进制安装6. 安装后的基本配置6.1 字符集配置建议在/etc/my.cnf中添加以下配置确保使用utf8mb4字符集[client] default-character-setutf8mb4 [mysqld] character-set-serverutf8mb4 collation-serverutf8mb4_unicode_ci [mysql] default-character-setutf8mb46.2 开启慢查询日志[mysqld] slow_query_log1 slow_query_log_file/var/log/mysql-slow.log long_query_time2 log_queries_not_using_indexes16.3 调整连接数[mysqld] max_connections1000 wait_timeout300 interactive_timeout3007. 常见问题与解决方案7.1 安装失败问题排查依赖问题# 安装常用依赖 sudo yum install -y libaio numactl端口冲突# 检查3306端口是否被占用 sudo netstat -tulnp | grep 3306SELinux阻止# 临时禁用SELinux sudo setenforce 0 # 永久禁用(需修改/etc/selinux/config)7.2 连接问题无法远程连接-- 授权远程访问 GRANT ALL PRIVILEGES ON *.* TO root% IDENTIFIED BY 密码 WITH GRANT OPTION; FLUSH PRIVILEGES;忘记root密码# 停止MySQL服务 sudo systemctl stop mysqld # 以安全模式启动 sudo mysqld_safe --skip-grant-tables # 登录并修改密码 mysql -uroot UPDATE mysql.user SET authentication_stringPASSWORD(新密码) WHERE Userroot; FLUSH PRIVILEGES; exit # 重启服务 sudo systemctl restart mysqld7.3 性能优化建议调整InnoDB缓冲池[mysqld] innodb_buffer_pool_size4G # 建议为物理内存的50-70%启用查询缓存[mysqld] query_cache_size64M query_cache_type1优化表结构-- 定期分析表 ANALYZE TABLE 表名; -- 优化表 OPTIMIZE TABLE 表名;8. 运维经验分享在实际生产环境中MySQL的安装只是第一步后续的维护和优化更为重要。以下是我总结的一些经验备份策略使用mysqldump进行逻辑备份配置binlog实现增量备份考虑使用Percona XtraBackup进行物理备份监控指标监控连接数、QPS、TPS等基本指标关注慢查询和锁等待定期检查磁盘空间使用情况版本升级测试环境充分验证后再升级生产环境使用mysql_upgrade工具升级数据字典注意兼容性问题特别是从5.7升级到8.0安全建议定期修改数据库密码限制root用户的访问权限启用SSL加密连接MySQL的安装和配置是一个需要不断学习和实践的过程建议初学者多动手实验遇到问题时善用官方文档和社区资源。随着经验的积累你会逐渐掌握更多优化技巧和故障处理方法。

相关推荐

MySQL ODBC 驱动配置避坑指南:3.51 与 8.0 版本选型及 DSN 实战配置
MySQL ODBC 驱动配置避坑指南:3.51 与 8.0 版本选型及 DSN 实战配置

简介:本资源是一份面向数据库管理员、后端开发人员及系统集成工程师的 MySQL ODBC 数据源配置实操指南,解决 Windows 环境下 MySQL 与 Excel、Power BI、ETL 工具等第三方应用安全对接的核心问题。文档以清晰步骤还原完整配置链路:从官方驱动… · 2026/11/4 5:01:08

Meta AI会话太多怎么备份?AI导出鸭批量导出实操指南
Meta AI会话太多怎么备份?AI导出鸭批量导出实操指南

说实话,我一开始也没想到自己会需要这个功能。Meta AI用得越久,左侧边栏的会话列表就越长,从十几条变成一百多条,再到三百多条。等我想把所有对话归档到本地的时候,发现官方Web端根本没有"一键备份全部会话"… · 2026/11/4 5:01:08

开题报告PPT制作指南:问题驱动型结构与逻辑可视化
开题报告PPT制作指南:问题驱动型结构与逻辑可视化

1. 开题报告PPT不是答辩彩排,而是研究逻辑的视觉说明书很多人把开题报告PPT当成“答辩预演稿”来准备——堆满文字、罗列参考文献、照着讲稿逐页念。结果导师一问“你这个研究问题到底卡在哪儿”,当场卡壳;或者被追问“为什么选这个方法而不是… · 2026/11/4 5:01:08

E24标准电阻表:硬件工程师的工程直觉基石
E24标准电阻表:硬件工程师的工程直觉基石

1. 为什么一张E24标准电阻表值得你打印贴在工位上?“常用标准电阻表 | E24标准电阻表”——这行字看起来平淡无奇,像电子实验室墙角那张泛黄的旧海报。但在我拆解过上百块故障电路板、调试过三千多个模拟前端、帮二十多位硬件新人绕过“阻值选错导致运放… · 2026/11/4 5:49:18

Games101作业0:开箱即用的图形学实验环境配置指南
Games101作业0:开箱即用的图形学实验环境配置指南

简介:本资源是GAMES101《计算机图形学与混合现实研讨会》课程2020年春季学期的首份实践作业指南,面向初学图形学、需快速搭建统一开发环境的高校学生及自学者。文档系统讲解了基于VirtualBox虚拟机的全流程配置方案,涵盖虚拟机安装&#xff0… · 2026/11/4 5:49:18

E24电阻标准值原理与工程应用全解析
E24电阻标准值原理与工程应用全解析

1. 项目概述:为什么一张E24电阻表能成为电子工程师的“随身字典”你拆开一块老式收音机主板,发现一个标着“4K7”的贴片电阻;调试一个运放电路时,手册建议用“220R”做反馈;画PCB前查BOM清单,看到“3M3”“… · 2026/11/4 5:49:18

Highcharts桑基图:数据流向可视化实战指南
Highcharts桑基图:数据流向可视化实战指南

1. 桑基图:数据流向可视化的终极武器第一次接触桑基图是在分析电商用户行为路径时,面对复杂的跳转关系,折线图和柱状图完全无法清晰展示用户在不同页面间的流转。直到发现Highcharts的桑基图模块,才真正解决了这个痛点。桑基图&am… · 2026/11/4 5:49:18

曲线曲面积分本质解析:从物理动机到空间思维建模
曲线曲面积分本质解析:从物理动机到空间思维建模

1. 这不是“背公式”的终点,而是理解空间积分的真正起点“考研数学——曲线曲面积分篇”,这八个字在每年九月之后,几乎会准时出现在某高校自习室的草稿纸边角、某线上题库APP的错题本首页、以及无数备考者凌晨三点合上《复习全书》时那一声无… · 2026/11/4 5:49:18

SQL Server表数据量统计与空间监控实战
SQL Server表数据量统计与空间监控实战

1. 需求背景与场景解析在日常数据库管理和性能优化工作中,了解数据库中各个表的数据量分布是DBA和开发人员的常见需求。特别是在以下场景中,这种需求尤为突出:数据库迁移前的容量评估:需要知道哪些表占用了主要空间,以… · 2026/11/4 5:48:18

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 6:04:24

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 5:52:46

AI辅助技术栈评估:提升研发决策效率60%
AI辅助技术栈评估:提升研发决策效率60%

1. 项目背景与核心价值技术决策一直是研发团队面临的重大挑战。随着技术生态的快速演进,技术栈的选择、维护和迭代变得愈发复杂。我们团队在过去两年里,先后经历了三次重大技术栈迁移,每次都需要投入大量人力进行技术评估和风险分析。直到去年… · 2026/11/4 0:00:17

从生成Token到直接决策:Jev如何重塑AI Agent工程实践
从生成Token到直接决策:Jev如何重塑AI Agent工程实践

1. 从"生成文字"到"拍板决策":Jev 到底在解决什么问题大多数人第一次接触大模型,脑子里建立的模型是"输入问题、输出文字"。你问它今天天气怎么样,它给你一段描述;你让它写个周报,它给你… · 2026/11/4 0:00:17

32G统一内存跑大模型:内存账、TPS实测与端云分流
32G统一内存跑大模型:内存账、TPS实测与端云分流

想在一台 32G 统一内存的小主机上把大模型跑成"日常可用",这件事我前后折腾了小半年。标题里说的这台 Mac mini M6,是我们这次讨论的目标平台,具体到手规格以实物为准;但下面这套推算方法和实测思路,对任何统… · 2026/11/4 0:00:17

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 6:04:24

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 5:52:46

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码