MySQL 在 Linux(如 CentOS/RHEL 8+ 或 AlmaLinux/Rocky Linux)上已不再默认提供
mysql-community-server的 yum 包,官方推荐使用
dnf+ RPM Repository 方式安装;直接
yum install mysql通常装的是 MariaDB,不是 Oracle 官方 MySQL。
确认系统版本和包管理器类型
先运行
cat /etc/redhat-release或
rpm -q centos-linux-release查清发行版。RHEL 8+、CentOS 8+、AlmaLinux 8+、Rocky Linux 8+ 默认用
dnf,
yum是其符号链接,但部分旧脚本仍写
yum——实际执行的已是
dnf。不要假设
yum还能像 CentOS 7 那样直接装 MySQL 官方包。
添加 MySQL 官方 YUM Repository
Oracle 不再把 MySQL Server 放进基础仓库,必须手动导入官方 repo:
下载 repo RPM:sudo dnf install https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm(注意
el8要匹配你的系统,如 el9 对应 RHEL 9) 启用 MySQL 8.0 系列(禁用 5.7,避免冲突):
sudo dnf config-manager --disable mysql57-community && sudo dnf config-manager --enable mysql80-community验证是否生效:
dnf repolist | grep mysql应看到
mysql80-community
安装 MySQL Server 并初始化
执行安装命令后,MySQL 不会自动生成 root 密码,首次启动会触发初始化流程:
sudo dnf install mysql-community-server sudo systemctl start mysqld sudo systemctl enable mysqld
初始化日志在
/var/log/mysqld.log,用以下命令提取临时密码:
sudo grep 'temporary password' /var/log/mysqld.log
拿到密码后立即登录并改密(MySQL 8.0 强制要求强密码策略):
mysql -u root -p ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourStrongPass123!';若提示
ERROR 1820 (HY000): You must reset your password,说明密码不符合策略,需包含大小写字母+数字+特殊字符
mysqld服务默认绑定
127.0.0.1,远程访问需修改
bind-address并授权用户 防火墙需放行 3306:
sudo firewall-cmd --permanent --add-port=3306/tcp && sudo firewall-cmd --reload
常见错误:yum install mysql 安装了 MariaDB
这是最常踩的坑——因为很多镜像源(包括阿里云、清华源)的
baseos仓库里,
mysql包名实际指向
mariadb-server。验证方法:
rpm -qi mysql
若输出中
Vendor显示
MariaDB Corporation Ab,就不是你要的 MySQL。
解决办法只有两个:删掉 MariaDB(
sudo dnf remove mariadb-server),再按上文添加官方 repo 安装;或坚持用 MariaDB,但别误以为它是 Oracle MySQL。
真正想用 MySQL 官方版,绕不开手动加 repo 这步——没有“一键 yum install 就完事”的路径。
