在Rocky Linux系统上安装MySQL,最稳妥且高效的方式是通过官方YUM仓库直接安装,这能确保获得最新的安全补丁和依赖管理支持,彻底告别手动编译带来的兼容性噩梦。
很多运维新手在面对Rocky Linux 8或9这类企业级操作系统时,往往对数据库选型感到纠结,MySQL作为老牌关系型数据库,凭借其开源免费、性能稳定以及庞大的社区生态,依然是中小型企业构建Web应用后端的首选,与MariaDB相比,MySQL在商业支持和高并发读写场景下有着更成熟的优化方案;而相比于PostgreSQL,MySQL的SQL语法更为通用,学习曲线更平缓,对于追求系统稳定性和长期维护便利性的团队来说,选择正确的安装路径至关重要。
Rocky Linux安装MySQL环境准备与仓库配置
在动手敲命令之前,理清环境背景能避免80%的潜在故障,Rocky Linux作为RHEL(Red Hat Enterprise Linux)的1:1二进制兼容替代品,其包管理逻辑与CentOS Stream高度一致,但细节上更加严谨。
为什么推荐YUM仓库而非源码编译
业内专家指出,手动从源码编译MySQL虽然能定制功能,但在生产环境中极难维护,YUM安装方式由官方维护,自动处理依赖关系,且能通过dnf update一键升级安全补丁,对于大多数场景,尤其是搭建WordPress博客、电商后台或内部管理系统,官方仓库提供的版本完全够用。
获取官方MySQL YUM源
不要直接从系统默认仓库安装MySQL,因为默认仓库中的版本通常较旧,且可能包含的是MariaDB,我们需要引入MySQL官方的社区YUM源。
- 下载官方配置包:访问MySQL官网获取针对Rocky Linux 8/9的配置包,通常文件名为
mysql80-community-release-el8-1.noarch.rpm。 - 安装配置包:使用以下命令安装:
sudo dnf install -y https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm
这一步会在
/etc/yum.repos.d/目录下生成MySQL相关的repo文件,启用默认社区版仓库。
验证仓库状态
安装完成后,确认仓库已正确启用,执行dnf repolist

,你应该能看到mysql80-community处于enabled状态,如果系统默认启用了其他MySQL变体,可以通过dnf module disable mysql来禁用冲突模块,确保纯净环境。
Rocky Linux系统安装MySQL数据库的具体步骤
准备好仓库后,安装过程变得异常简单,这一步的核心在于确保软件包的完整性以及服务能随系统启动。
执行安装命令
使用dnf命令进行安装,建议指定具体版本以避免意外升级,安装MySQL 8.0社区版:
sudo dnf install -y mysql-community-server
系统会自动解析依赖,下载MySQL服务端、客户端及相关库文件,整个过程取决于网络速度,通常几分钟内即可完成,安装过程中,如果提示GPG密钥验证,选择y确认即可。
启动并设置开机自启
安装完成后,服务默认处于停止状态,我们需要立即启动它,并设置为开机自启,以确保服务器重启后数据库依然可用。
sudo systemctl start mysqld sudo systemctl enable mysqld sudo systemctl status mysqld
通过status命令查看状态,确保显示active (running),如果状态为failed,请检查/var/log/mysqld.log日志文件,排查端口占用或权限问题。
获取临时密码并修改root密码
MySQL 8.0引入了严格的安全机制,首次安装后会生成一个临时随机密码,这是很多用户遇到的第一个坑。
-
查找临时密码:
sudo grep 'temporary password' /var/log/mysqld.log
日志中会有一行类似
A temporary password is generated for root@localhost: xxxxxxxx的记录,记下这个密码。 -
登录并修改密码:
使用临时密码登录MySQL:mysql -u root -p
进入MySQL命令行后,立即修改root密码,MySQL 8.0强制要求密码复杂度,必须包含大小写字母、数字和特殊字符,且长度至少8位。
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourStrongPassword123!';

修改成功后,刷新权限并退出:
FLUSH PRIVILEGES; exit;
MySQL安全加固与远程访问配置
安装完成只是第一步,如何确保数据库在公网或内网中安全运行,才是考验运维能力的地方,很多用户询问“如何允许远程连接MySQL”,这涉及到防火墙和MySQL用户权限的双重配置。
配置防火墙允许3306端口
Rocky Linux默认启用firewalld,如果不开启端口,外部客户端将无法连接。
sudo firewall-cmd --permanent --add-port=3306/tcp sudo firewall-cmd --reload
执行后,使用firewall-cmd --list-ports确认3306端口已开放。
创建远程访问用户
出于安全考虑,强烈不建议直接使用root用户进行远程连接,应创建一个专用账户,并限制其来源IP。
CREATE USER 'admin'@'%' IDENTIFIED BY 'AdminPassword123!'; GRANT ALL PRIVILEGES ON . TO 'admin'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES;
注意:表示允许任意IP连接,这在测试环境方便,但在生产环境中,建议替换为具体的服务器IP地址,如'admin'@'192.168.1.100',以缩小攻击面。
调整MySQL配置文件
默认配置适用于通用场景,但若你的服务器内存较大,可适当调整my.cnf文件(位于/etc/my.cnf),增加innodb_buffer_pool_size以利用更多内存加速查询,或调整max_connections以支持更高并发,修改后需重启服务生效。
Rocky Linux MySQL安装常见问题与排查
在实际操作中,总会遇到各种意外,以下是几个高频问题的解决方案,帮助你快速定位故障。
忘记密码怎么办
如果忘记了root密码,可以通过安全模式重置,首先停止服务,然后以--skip-grant-tables参数启动MySQL,此时无需密码即可登录,直接修改密码后再重启服务,具体命令如下:
sudo systemctl stop mysqld sudo mysqld_safe --skip-grant-tables & mysql -u root

进入后执行FLUSH PRIVILEGES;,然后使用ALTER USER重置密码。
连接超时或拒绝访问
如果客户端提示Host 'xxx' is not allowed to connect to this MySQL server,通常是用户权限问题,检查MySQL用户表,确认用户是否允许从该IP连接,如果提示Connection timed out,则重点检查Rocky Linux的firewalld或云服务商的安全组策略是否放行了3306端口。
如何查看MySQL版本与状态
登录MySQL后,执行SELECT VERSION();可查看当前版本,使用SHOW STATUS LIKE 'Uptime';可查看服务运行时间,这些基础命令有助于日常监控。
FAQ: Rocky Linux安装MySQL相关问题解答
Rocky Linux安装MySQL和MariaDB有什么区别
MariaDB是MySQL的分支,由原MySQL创始人维护,完全开源且兼容MySQL协议,Rocky Linux默认仓库优先提供MariaDB,因为其社区支持更紧密,但如果你需要MySQL特有的功能(如某些存储引擎优化)或依赖特定的商业软件,应选择官方MySQL仓库,两者在大多数Web应用场景下性能差异不大,选择取决于团队技术栈偏好。
MySQL 8.0在Rocky Linux上的性能表现如何
MySQL 8.0引入了JSON支持和更高效的默认认证插件,在复杂查询和大数据量场景下表现优异,据行业共识认为,在Rocky Linux这种基于RHEL内核的系统上,MySQL 8.0能充分利用现代CPU的多核特性,配合适当的InnoDB配置,足以支撑日均百万级PV的应用。
如何备份Rocky Linux上的MySQL数据
推荐使用mysqldump工具进行逻辑备份,备份所有数据库:mysqldump -u root -p --all-databases > backup.sql,对于生产环境,建议结合cron定时任务自动备份,并将备份文件传输至远程存储,以防硬件故障导致数据丢失。
在Rocky Linux上部署MySQL并非难事,关键在于遵循官方规范,做好安全加固,通过YUM仓库安装能最大程度保证系统的稳定性,而合理的权限管理和防火墙配置则是守护数据安全的最后一道防线,只要按步骤操作,你就能拥有一个高效、安全的数据库环境。
首发原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/405669.html
