在CentOS 7上安装MySQL的方法

[复制链接]
发表于 2026-10-4 17:26:04 来自手机 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×

在 CentOS 7 上直接 yum install mysql-server,装到手的是 MariaDB 而不是 MySQL——这是很多人第一次踩的坑。原因是 CentOS 7 的默认源里根本没有 MySQL 服务端包,baseos/appstream 里给的是 MariaDB。确实要用 Oracle 官方的 MySQL 8,就得自己加 MySQL 社区 yum 仓库。这篇把这条路走通。

一、先想清楚:真的需要 MySQL 吗

General 场景下 MariaDB 可以无缝替换 MySQL:同样的 mysql、mysqladmin 客户端,SQL 语法高度兼容,LEMP / LNMP 组件不用改代码。只有用到 8.0 特有特性(比如某些 CTE 行为差异、密码插件 caching_sha2_password 的客户端兼容要求、Oracle 官方企业特性)时才值得折腾官方 MySQL。如果你的业务没有这些强需求,装 MariaDB 更省事。

二、 prerequisites

  • 一台 CentOS 7 机器;
  • 一个具备 sudo 权限的非 root 用户(别一直用 root 远程运维);
  • 能访问 dev.mysql.com(内网环境先确认出口策略)。

三、添加 MySQL 社区 yum 仓库

打开 https://dev.mysql.com/downloads/repo/yum/,找到对应CentOS 7 的安装包(形如 mysql80-community-release-el7-*.noarch.rpm),先用 curl 拉下来:

curl -SLO https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm

下载后建议做个校验:跑 md5sum 包名,把输出的哈希和下载页面上列出的 MD5 值对一下,不一致就说明文件传输出错了,重新下。

md5sum mysql80-community-release-el7-5.noarch.rpm

校验通过再装:

sudo rpm -ivh mysql80-community-release-el7-5.noarch.rpm

这个 rpm 会在 /etc/yum.repos.d/ 下写入 MySQL 的 repo 文件。注意:下载页面现在常见的是 MySQL 8.0 仓库,如果你要装 5.7,需要下载的是 mysql57-community-release-el7-*.noarch.rpm,别把版本号张冠李戴(很多教程里 5.7 的 rpm 配 8.0 的安装命令,就是装不上/装错包的原因)。

四、安装 MySQL 服务端

sudo yum install mysql-server

提示确认时按 y。首次引入新仓库时 yum 还会再问一次要不要导入它的 GPG 密钥,同样按 y。

五、启动并找临时密码

sudo systemctl start mysqld
sudo systemctl status mysqld

输出里出现 Active: active (running) 就说明起来了。MySQL 8 在安装时会自动给 root 生成一个临时密码,位置在日志日志里:

sudo grep 'temporary password' /var/log/mysqld.log
2022-01-24T19:54:46.313728Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: mqRfBU_3Xk>r

记下这串密码,下一步要用。MySQL 8 默认密码策略要求至少 12 位,且同时包含大写、小写、数字和特殊字符,临时密码往往不满足,所以第一次登录必须改密码。

六、跑安全脚本

sudo mysql_secure_installation

第一步让输入 root 密码,就贴上面那条临时密码;系统会要求重设新密码,设成符合强度的 12 位以上密码并确认。之后几项统一回答 y:删除匿名用户、禁止 root 远程登录、删除 test 数据库及其权限、重新加载权限表。其中「禁止 root 远程登录」这条建议保留,远程连库走专用账号 + 防火墙白名单。

七、验证

mysqladmin -uroot -p version
mysqladmin  Ver 8.0.28 for Linux on x86_64 (MySQL Community Server - GPL)
Copyright (c) 2000, 2022, Oracle and/or its affiliates.

Server version              8.0.28
Protocol version            10
Connection                  Localhost via UNIX socket
UNIX socket                 /var/lib/mysql/mysql.sock
Uptime:                     3 min 2 sec

打印出 Server version 8.0.x 就说明整条链路通了。最后再补两件事:sudo systemctl enable mysqld 设开机自启;如果业务要远程连,改 /etc/my.cnf 的 bind-address 并开防火墙端口,别直接把 root 暴露出去。

八、升级注意

MySQL 8.x 的 caching_sha2_password 认证插件在老客户端(部分老旧 JDBC 驱动、PHP 老版本 mysqlnd、某些备份工具)上会连不上。遇到 Authentication plugin 'caching_sha2_password' cannot be loaded,要么升级客户端驱动,要么给老账号改回 mysql_native_password。迁移前务必在测试环境跑一遍业务连通性。

qidao123.com企服评测-应用市场 编辑提示

回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表