好的,这里为你提供在 AlmaLinux 9.7 上安装 MySQL 8.0 社区版的完整详细步骤。
整个流程基于 MySQL 官方 Yum 仓库,安装的是当前官方推荐且免费开源的版本,可以放心使用。
📋 安装前准备
更新系统软件包
保持系统为最新状态,避免依赖冲突。bash
sudo dnf update -y检查并清理可能的残留
如果系统中已安装 MariaDB 或其他 MySQL 版本,建议先卸载,防止冲突。bash
# 查看已安装的数据库相关包 rpm -qa | grep -E 'mysql|mariadb' # 如有输出,则卸载(将 <包名> 替换为实际名称) # sudo dnf remove <包名>
🧩 第一步:添加 MySQL 官方 Yum 仓库
MySQL 官方为 RHEL 9 / AlmaLinux 9 提供了专门的仓库包。执行以下命令即可添加:
bash
sudo dnf install -y https://dev.mysql.com/get/mysql80-community-release-el9-1.noarch.rpm此命令会下载并安装仓库配置文件,之后系统就能通过 dnf 直接安装 MySQL 8.0。
📦 第二步:安装 MySQL 服务器
bash
sudo dnf install -y mysql-community-server安装过程中会自动下载并安装 MySQL 8.0 服务端、客户端以及相关依赖。
🚀 第三步:启动并设置开机自启
启动 MySQL 服务
bash
sudo systemctl start mysqld检查服务状态(确保显示
active (running))bash
sudo systemctl status mysqld设置开机自启
bash
sudo systemctl enable mysqld
🔐 第四步:获取临时 root 密码
MySQL 8.0 在首次启动时会生成一个随机的临时 root 密码,并记录在错误日志中。通过以下命令查看:
bash
sudo grep 'temporary password' /var/log/mysqld.log输出类似:
text
2025-03-28T10:00:00.123456Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: JqkfRqW2sh?e其中 JqkfRqW2sh?e 就是临时密码。请务必复制并妥善保存。
⚙️ 第五步:安全配置(修改 root 密码、删除匿名用户等)
运行 MySQL 自带的安全脚本,对数据库进行初始加固:
bash
sudo mysql_secure_installation按照提示依次操作:
Enter password for user root:
输入上一步获取的临时密码。Change the password for root ? [Y/n]
输入Y,然后设置新的 root 密码。
注意:MySQL 8.0 默认密码策略要求密码至少包含一个大写字母、一个小写字母、一个数字和一个特殊字符,且长度不少于 8 位。
例如:MyStrongPass@123Remove anonymous users? [Y/n]
输入Y,删除匿名用户。Disallow root login remotely? [Y/n]
输入Y,禁止 root 用户远程登录(提高安全性)。Remove test database and access to it? [Y/n]
输入Y,删除测试数据库。Reload privilege tables now? [Y/n]
输入Y,使权限更改立即生效。
✅ 第六步:验证安装
使用新设置的 root 密码登录 MySQL:
bash
mysql -u root -p输入密码后,如果出现 mysql> 提示符,说明登录成功。可以查看版本:
sql
SELECT VERSION();预期输出类似:8.0.36 或更高版本号。
退出用 EXIT;。
🌐 第七步(可选):配置远程访问
如果需要在其他机器上连接此数据库,按以下步骤开放远程连接:
修改 MySQL 配置文件,让 MySQL 监听所有网络接口:
bash
sudo nano /etc/my.cnf找到
bind-address行,将其注释或修改为0.0.0.0:text
# bind-address = 127.0.0.1保存并退出。
重启 MySQL 服务:
bash
sudo systemctl restart mysqld在 MySQL 中创建远程访问用户(不建议直接用 root 远程登录):
sql
CREATE USER 'your_username'@'%' IDENTIFIED BY 'your_strong_password'; GRANT ALL PRIVILEGES ON *.* TO 'your_username'@'%'; FLUSH PRIVILEGES;如果需要限制特定 IP,可将
%替换为具体 IP 地址。开放防火墙 3306 端口:
bash
sudo firewall-cmd --permanent --add-port=3306/tcp sudo firewall-cmd --reload
🧪 测试远程连接(可选)
在其他机器上执行:
bash
mysql -h <服务器IP> -u your_username -p输入密码后能成功登录即表示配置正确。
💡 常见问题与提示
密码策略太严格怎么办?
如果希望降低密码复杂度要求,可以登录 MySQL 后执行:sql
SET GLOBAL validate_password.policy = LOW; SET GLOBAL validate_password.length = 4;之后再修改密码。但这会降低安全性,生产环境不建议这样做。
如果忘记 root 密码
可以参考 MySQL 官方文档的“重置 root 密码”流程,或联系我获取帮助。关于 MySQL 8.0 的兼容性
如果你的应用曾经运行在 MySQL 5.7 上,升级到 8.0 时需要注意一些语法变化(如GROUP BY行为更严格)。建议先在测试环境验证。
至此,你已经成功在 AlmaLinux 9.7 上安装并配置好了 MySQL 8.0 社区版。如果你在安装过程中遇到任何问题,欢迎随时追问!