Linux系统下如何安装MySQL数据库

来源:Android社区作者:深圳GEO公司头衔:草根站长
导读:本期聚焦于深圳GEO公司创作的《Linux系统下如何安装MySQL数据库》,敬请观看详情。很多刚接触Linux系统的用户不知道怎么在系统上安装MySQL数据库,本文会详细介绍在常见的Linux发行版中安装MySQL的完整流程。内容涵盖安装前的环境检查、不同安装方式的操作步骤、安装后的初始配置以及常见问题的解决方法,不管是使用yum包管理器还是源码编译安装,都能找到对应的操作指引,帮助用户快速在Linux环境下完成MySQL的部署,满足日常开发或生产环境的使用需求。

在Linux系统中部署MySQL数据库是开发、测试与生产环境中的常见任务。由于Linux发行版种类较多,不同系统使用的包管理器、服务管理工具以及默认配置文件路径都有所不同,因此安装MySQL之前需要先明确操作系统类型,并按照对应方式执行安装。本文会围绕环境检查、基于YUM的安装、基于APT的安装、安装结果验证以及常见问题处理等几个方面,详细说明Linux下安装MySQL数据库的完整流程。

安装前的环境检查与准备

在正式安装MySQL之前,进行环境检查可以避免很多后续冲突。首先要确认当前Linux系统的发行版和版本号,因为CentOS、RHEL、Ubuntu、Debian等系统使用的包管理器不同,命令也存在差异。CentOS和RHEL通常使用yumdnf,而Ubuntu和Debian使用apt。通过系统信息文件可以快速查看发行版信息。

其次,需要检查系统中是否已经安装过MySQL或MariaDB相关软件包。如果之前安装过旧版本,可能会与新版产生端口冲突、文件覆盖或服务启动失败等问题。对于RHEL系系统,可以使用rpm命令查询已安装的软件包。此外,还需要确认3306端口是否已经被其他程序占用,因为MySQL默认使用该端口进行网络通信。磁盘空间和内存也是需要考虑的因素,MySQL安装文件和解压后的数据目录会占用一定空间,建议预留足够的可用磁盘容量。

下面的命令可以用于检查系统版本、旧版MySQL或MariaDB残留以及端口占用情况:

# 查看当前Linux发行版信息
cat /etc/os-release
# 检查已安装的MySQL相关软件包
rpm -qa | grep mysql
# 检查已安装的MariaDB相关软件包
rpm -qa | grep mariadb
# 检查3306端口是否已被占用
sudo netstat -tlnp | grep 3306

如果发现系统中已经存在MySQL或MariaDB,建议先根据实际需求决定是否卸载旧版本。卸载时可以使用yum removeapt remove命令,并清理对应的数据目录和配置文件,避免残留文件干扰新安装的实例。对于端口被占用的情况,可以先停止占用端口的服务,或者修改MySQL配置文件中的监听端口。

基于YUM在CentOS/RHEL系统安装MySQL

对于CentOS 7及以上版本以及RHEL系统,使用YUM包管理器安装MySQL是最常见的方式。MySQL官方提供了专门的YUM仓库,通过安装仓库包可以让系统直接获取MySQL社区版的软件源。安装时首先需要下载与操作系统版本匹配的仓库RPM包,然后使用rpm命令安装该仓库包。

添加官方YUM源后,系统就可以通过yum命令安装MySQL服务器和客户端组件。安装过程中会从官方仓库下载必要的软件包及其依赖,因此需要保证网络连接正常。安装完成后,MySQL服务通常不会自动启动,需要手动启动并设置为开机自启动。

# 下载MySQL 8.0官方YUM仓库RPM包
wget https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm
# 安装YUM仓库包
sudo rpm -ivh mysql80-community-release-el7-5.noarch.rpm
# 安装MySQL服务器
sudo yum install mysql-community-server -y

安装完成后,需要启动MySQL服务并检查服务运行状态。在RHEL 7及以上系统中,可以使用systemctl命令管理服务。将MySQL服务设置为开机自启动,可以在系统重启后自动拉起数据库进程,减少人工干预。

# 启动MySQL服务
sudo systemctl start mysqld
# 设置MySQL服务开机自启
sudo systemctl enable mysqld
# 查看MySQL服务运行状态
sudo systemctl status mysqld

MySQL安装完成后会为root用户生成一个临时初始密码,该密码记录在错误日志文件中。由于临时密码通常比较随机,需要先从日志中读取,然后使用该密码登录MySQL,登录后立即修改为符合安全策略的新密码。MySQL 8.0默认启用了密码强度校验,新密码建议同时包含大写字母、小写字母、数字和特殊字符。

# 查看MySQL生成的临时初始密码
sudo grep 'temporary password' /var/log/mysqld.log
# 使用临时密码登录MySQL
mysql -u root -p
-- 登录后修改root用户密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPass@123';
-- 刷新权限使修改生效
FLUSH PRIVILEGES;

修改密码后,建议重新登录一次MySQL,确认新密码可以正常使用。如果临时密码已经失效或日志中没有找到密码,可以通过重置密码的方式处理,这部分内容会在常见问题部分详细说明。

基于APT在Ubuntu/Debian系统安装MySQL

Ubuntu和Debian系统采用APT包管理器,软件仓库中已经包含了MySQL社区版,因此安装流程比RHEL系更为简单。安装前先更新APT软件源索引,确保获取到最新的软件包信息,然后直接安装mysql-server软件包即可。

安装过程中可能会提示设置root用户密码,也可能在安装完成后通过安全脚本进行设置。Ubuntu默认安装MySQL时,root用户可能使用auth_socket插件进行身份验证,导致无法直接使用密码登录,需要进行调整。执行mysql_secure_installation脚本可以一次性完成密码设置、匿名用户清理、禁止root远程登录以及删除测试数据库等安全操作。

# 更新APT软件源索引
sudo apt update
# 安装MySQL服务器
sudo apt install mysql-server -y
# 执行MySQL安全配置脚本
sudo mysql_secure_installation

安全配置脚本会交互式地询问多个问题,包括是否启用密码强度校验、是否设置root密码、是否移除匿名用户、是否禁止root远程登录、是否删除test数据库以及是否立即刷新权限。根据实际需求选择YN即可。如果安装时没有设置root密码,也可以在执行脚本后再通过其他方式修改root认证方式。

APT安装完成后,MySQL服务一般会自动启动。可以使用systemctl命令查看服务状态,Ubuntu系统中的服务名称通常为mysql。如果服务没有自动启动,需要手动启动并设置开机自启。

# 查看MySQL服务状态
sudo systemctl status mysql
# 如果服务未启动,手动启动
sudo systemctl start mysql
# 设置开机自启动
sudo systemctl enable mysql

安装结果验证与基础安全配置

无论使用YUM还是APT完成安装,都应该对安装结果进行验证。验证方法包括登录MySQL、查看版本信息、列出当前数据库以及检查服务监听状态。登录MySQL后,可以执行SELECT VERSION();查看版本,执行SHOW DATABASES;查看默认数据库列表。MySQL安装完成后会自带几个系统数据库,例如information_schemamysqlperformance_schemasys,这些数据库用于存储元数据、权限信息和性能指标。

# 使用root用户登录MySQL
mysql -u root -p
-- 查看MySQL服务器版本
SELECT VERSION();
-- 查看当前所有数据库
SHOW DATABASES();

除了登录验证之外,还可以通过查看端口监听情况确认MySQL是否对外提供服务。默认情况下,MySQL监听3306端口,使用netstatss命令可以检查端口监听状态。如果服务已经启动但无法登录,需要检查是否使用了正确的认证方式,或者是否存在配置文件错误。

# 查看3306端口监听状态
sudo netstat -tlnp | grep 3306
# 也可以使用ss命令查看
sudo ss -tlnp | grep 3306

基础安全配置方面,建议在生产环境中删除匿名用户、禁止root远程登录、设置强密码并定期更换。通过mysql_secure_installation脚本可以自动完成一部分安全加固,也可以在MySQL内部使用SQL语句手动管理用户权限。安装完成后还应检查MySQL配置文件中的绑定地址,如果只需要本机访问,可以将绑定地址设置为127.0.0.1

常见问题处理与远程访问配置

在安装和使用MySQL的过程中,可能会遇到服务启动失败、端口占用、密码遗忘以及远程访问受限等问题。端口占用是比较常见的情况,如果3306端口已经被其他程序占用,启动MySQL时会出现错误。可以通过netstat -tlnp | grep 3306找到占用端口的进程,然后根据实际情况停止该进程或修改MySQL监听端口。

如果忘记了root密码,可以通过在配置文件中添加skip-grant-tables参数来跳过权限验证。该方法需要先停止MySQL服务,然后编辑配置文件,在[mysqld]配置段中添加参数,重新启动服务后即可无密码登录MySQL。重置密码后,必须删除该参数并再次重启服务,以恢复正常的权限验证机制。

# 停止MySQL服务
sudo systemctl stop mysqld
# 编辑MySQL配置文件,在[mysqld]段添加skip-grant-tables
sudo vim /etc/my.cnf
# 重新启动MySQL服务
sudo systemctl start mysqld
# 无密码登录MySQL
mysql -u root
-- 刷新权限并重置root密码
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPass@456';
-- 退出MySQL后,删除配置文件中的skip-grant-tables参数
# 再次编辑配置文件,删除skip-grant-tables后重启服务
sudo vim /etc/my.cnf
sudo systemctl restart mysqld

如果需要从其他主机远程连接MySQL,默认情况下root用户只允许从localhost登录。要开启远程访问,需要修改MySQL中root用户的主机字段为%,表示允许从任意IP地址连接。修改完成后需要刷新权限,并在防火墙中开放3306端口。远程访问会带来安全风险,建议只对可信网络开放,并配合强密码和IP白名单使用。

-- 切换到mysql系统数据库
USE mysql;
-- 修改root用户的主机为所有IP
UPDATE user SET host='%' WHERE user='root';
-- 刷新权限
FLUSH PRIVILEGES;
# 开放防火墙3306端口
sudo firewall-cmd --add-port=3306/tcp --permanent
# 重新加载防火墙规则
sudo firewall-cmd --reload

在实际运维中,还应注意定期备份数据库、检查错误日志以及升级MySQL安全补丁。安装只是数据库管理的第一步,后续的性能优化、权限管理和数据备份同样重要。通过合理的安装流程和安全配置,可以为业务提供稳定可靠的数据库服务。

总体来说,Linux系统下安装MySQL并不复杂,关键在于根据发行版选择合适的包管理器,并在安装后完成密码修改、安全配置和远程访问设置。掌握这些基础操作,能够帮助运维人员快速搭建起可用的MySQL数据库环境。

LinuxMySQL数据库安装yum_install修改时间:2026-07-21 19:33:32

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。