CentOS7下怎么一步步安装并配置MySQL5.7数据库?

来源:网络学院作者:梦乃头衔:网络博主
导读:本期聚焦于小伙伴创作的《CentOS7下怎么一步步安装并配置MySQL5.7数据库?》,敬请观看详情。在CentOS7服务器上部署MySQL5.7时,直接执行yum install往往拉取到的是默认仓库里的MariaDB而非官方MySQL。正确的做法是从MySQL官方获取适配el7的yum源,再完成服务端安装与初始密码修改。本文梳理了从卸载冲突包、配置repo文件、启动mysqld到安全初始化的完整流程,并说明了字符集与远程访问的常见调整方式。照着操作可以避免启动失败、密码找不到等典型问题,适合刚接触Linux运维的新手对照执行。

在CentOS7环境中部署MySQL5.7,与普通的软件包安装存在明显差异。系统自带仓库默认提供的是MariaDB分支,若未清理冲突组件就直接安装,容易出现服务无法启动或端口被占用的情况。因此,整套流程应当从环境检查开始,逐步引入官方源并完成初始化。

CentOS7下怎么一步步安装并配置MySQL5.7数据库?

一、清理系统自带的MariaDB相关包

CentOS7最小安装或基础安装中,可能会预置mariadb-libs这类库文件,它与MySQL5.7的客户端库存在文件冲突。在正式添加MySQL源之前,应当先查询并卸载这些包,避免后续依赖解析失败。

使用rpm命令可以列出当前系统中已安装的MariaDB组件。如果输出中存在mariadb或mariadb-libs,就需要通过yum remove将其移除以释放依赖空间。这一步虽然简单,但经常被忽略,导致后面执行mysql命令时报错提示客户端库版本不匹配。

# 查看是否已安装mariadb相关包
rpm -qa | grep mariadb

# 若上述命令有输出,则执行卸载
yum remove -y mariadb-libs mariadb-common

二、添加MySQL官方YUM源

MySQL官方为RHEL/CentOS7(即el7)提供了专用的仓库配置文件。通过下载该rpm包并安装,系统就能从官方地址获取MySQL5.7的各个组件,而不是使用第三方或系统默认源。

下载时建议选择对应小版本的最新发行包,例如mysql57-community-release-el7-11.noarch.rpm。安装该release包后,会在/etc/yum.repos.d/目录下生成mysql-community.repo文件,其中默认启用了5.7系列。可通过yum repolist确认mysql57-community源已经可用。

# 下载MySQL5.7的yum源release包
wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

# 安装release包以注册官方仓库
rpm -ivh mysql57-community-release-el7-11.noarch.rpm

# 确认仓库已启用
yum repolist enabled | grep mysql

三、安装MySQL5.7服务端

仓库配置完成后,便可以安装mysql-community-server。该包包含了mysqld守护进程、系统表初始化工具以及基础客户端。安装过程会自动处理大部分依赖,但需要确保磁盘空间充足,因为5.7的数据目录初始化后会占用一定容量。

安装结束后,不要立即启动服务。建议先确认/etc/my.cnf中的基础配置,例如datadir与socket路径。若服务器内存较小,可适当调整innodb_buffer_pool_size,防止启动后因内存不足被系统终止。

# 安装MySQL5.7服务端
yum install -y mysql-community-server

# 安装完成后查看版本信息
mysqld --version

四、启动服务与获取初始密码

MySQL5.7在首次启动时会自动生成root用户的临时密码,并写入错误日志文件(默认位于/var/log/mysqld.log)。启动服务后必须及时提取该密码,否则无法通过root登录执行后续操作。

使用systemctl启动mysqld,并设置开机自启。随后通过grep命令在日志中搜索temporary password关键字。该密码通常为随机字符串,包含大小写字母与符号,直接复制使用即可,登录后必须修改。

# 启动MySQL服务
systemctl start mysqld

# 设置开机自启
systemctl enable mysqld

# 从日志中提取初始root密码
grep 'temporary password' /var/log/mysqld.log

五、安全初始化与修改密码

拿到临时密码后,应使用mysql_secure_installation脚本完成安全初始化。该脚本会引导用户修改root密码、移除匿名用户、禁止root远程登录以及删除测试数据库。对于暴露在公网的服务器,这些步骤不可或缺。

若仅做本地开发环境,也可以手动登录后执行ALTER USER语句修改密码。注意MySQL5.7默认启用validate_password插件,密码需满足长度与复杂度策略,否则会拒绝修改。可通过调整策略参数降低要求,但不建议在生产环境关闭。

# 使用临时密码登录
mysql -uroot -p

# 登录后修改root密码(在mysql命令行内执行)
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPass@123';

六、字符集与远程访问配置

默认情况下,MySQL5.7的服务端字符集可能不是utf8mb4,这会导致存入emoji或部分生僻字时出现乱码。应在/etc/my.cnf的[mysqld]段中显式设置字符集,并重启服务生效。

如果业务需要远程连接,除了在用户表中创建允许特定IP的账号外,还要确保防火墙放行3306端口。CentOS7默认使用firewalld,可通过firewall-cmd命令添加永久规则。同时,云服务器还需在安全组中开放对应端口。

# 在/etc/my.cnf添加如下配置后重启
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci

# 防火墙放行3306
firewall-cmd --permanent --add-port=3306/tcp
firewall-cmd --reload
步骤关键命令易错点
清理冲突包yum remove mariadb-libs未清理导致文件冲突
添加官方源rpm -ivh mysql57-community-release误用系统默认源
安装服务端yum install mysql-community-server磁盘空间不足
获取初始密码grep temporary /var/log/mysqld.log未及时查看导致丢失

按照上述流程操作,即可在CentOS7上获得一个可稳定运行的MySQL5.7实例。后续可根据业务量进行主从配置或备份策略调整,但基础安装与初始化是这一切的前提。

CentOS7MySQL5.7数据库安装修改时间:2026-08-03 01:42:39

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。