必须先添加mysql官方yum源,否则yum install mysql会安装mariadb而非mysql 8.0;因centos默认mysql包是mariadb别名,版本仅5.5/5.7,且无mysql 8.0包。

直接装 mysql-community-server 就行,但必须先加官方 yum 源,否则 CentOS 7/8 默认仓库里没有 MySQL 8。
为什么不能直接 yum install mysql?
CentOS 自带的 mysql 包其实是 MariaDB 的别名,装出来不是 Oracle 官方 MySQL;而且版本是 5.5 或 5.7,不是 8.0。想用 MySQL 8,必须手动导入 Oracle 提供的 yum 源。
-
wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm(CentOS 7)或el8-3.noarch.rpm(CentOS 8/Stream) -
sudo rpm -ivh mysql80-community-release-*.rpm—— 这步只是装源,不装数据库本身 - 装完后运行
yum repolist | grep mysql,能看到mysql80-community已启用
安装时提示 GPG key 验证失败怎么办?
常见错误信息:Public key for mysql-community-common-*.rpm is not installed。这是因系统没预装 MySQL 的 GPG 公钥,而 yum 默认校验包签名。
- 临时解决:加
--nogpgcheck参数,sudo yum install mysql-community-server -y --nogpgcheck - 长期建议:手动导入密钥,
sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-mysql,再重试安装 - 注意:跳过 GPG 检查只应在可信网络环境(如云服务器内网)下短期使用
启动后连不上,查不到临时密码?
MySQL 8.0 启动首次会生成临时 root 密码,但日志路径、权限或 SELinux 可能导致 grep 'temporary password' /var/log/mysqld.log 查不到内容。
- 确认服务已真正启动:
sudo systemctl status mysqld,状态必须是active (running) - 检查日志文件是否存在且可读:
sudo ls -l /var/log/mysqld.log;若为空,可能是初始化失败,删掉/var/lib/mysql重装(慎用,会丢数据) - SELinux 开启时可能拦截写日志,临时关闭测试:
sudo setenforce 0 - 如果仍无输出,用
sudo journalctl -u mysqld | grep 'password'查 systemd 日志
最关键的遗漏点:很多人改完密码、开好 bind-address = 0.0.0.0,却忘了在腾讯云控制台的安全组里放行 3306 端口 —— 这比配置本身更容易被忽略。











