在 CentOS 7.2 系统上安装 MySQL 数据库是一个常见的需求,但由于系统默认的软件仓库(Yum Repository)提供的是 MariaDB(MySQL 的一个分支),我们需要通过添加 MySQL 官方仓库的方式来获取最新的 MySQL 社区版,本文将详细介绍在 CentOS 7.2 环境下安装、配置并初步使用 MySQL 的完整流程。

准备工作
在开始安装之前,请确保您拥有一台已安装 CentOS 7.2 的服务器,并且具备 sudo 或 root 权限,为了确保系统的稳定性和兼容性,建议首先更新系统软件包到最新版本,打开终端,执行以下命令:
sudo yum update -y
此命令会更新系统中所有已安装的软件包,为后续的安装过程提供一个干净的环境。
安装 MySQL Yum 源
MySQL 官方提供了一个 Yum 仓库配置文件(.rpm 包),通过安装这个配置文件,我们就可以让系统的 yum 包管理器直接从官方源下载和安装 MySQL。
访问 MySQL 官方网站的 Yum 仓库下载页面,找到适合您系统的版本,对于 CentOS 7,我们可以使用 wget 命令直接下载,以下命令下载的是适用于 Red Hat Enterprise Linux 7 / CentOS 7 的 MySQL 8.0 社区版仓库配置包:
wget https://repo.mysql.com/mysql80-community-release-el7-3.noarch.rpm
下载完成后,使用 yum 命令安装这个 RPM 包:
sudo yum localinstall mysql80-community-release-el7-3.noarch.rpm -y
安装成功后,系统会在 /etc/yum.repos.d/ 目录下创建两个新的仓库文件:mysql-community.repo 和 mysql-community-source.repo,您可以通过 yum repolist enabled | grep mysql 命令来验证 MySQL 仓库是否已成功启用。
安装 MySQL 服务器
MySQL 官方仓库已经配置完毕,我们可以像安装其他软件一样,通过 yum 命令来安装 MySQL 服务器:
sudo yum install mysql-community-server -y
此过程会自动处理所有依赖关系,并从 MySQL 官方源下载 MySQL 服务器、客户端及相关库文件,安装过程可能需要几分钟时间,具体取决于您的网络速度。
启动与配置服务
安装完成后,MySQL 服务并不会自动启动,我们需要使用 systemctl 命令来管理 MySQL 服务。

启动 MySQL 服务:
sudo systemctl start mysqld
设置 MySQL 服务为开机自启,确保服务器重启后数据库能自动运行:
sudo systemctl enable mysqld
为了确认服务是否正在运行,可以检查其状态:
sudo systemctl status mysqld
如果输出中显示 active (running),则表示 MySQL 服务已成功启动,下表小编总结了常用的 systemctl 管理命令:
| 功能 | 命令 |
|---|---|
| 启动服务 | sudo systemctl start mysqld |
| 停止服务 | sudo systemctl stop mysqld |
| 重启服务 | sudo systemctl restart mysqld |
| 查看状态 | sudo systemctl status mysqld |
| 设置开机自启 | sudo systemctl enable mysqld |
| 禁止开机自启 | sudo systemctl disable mysqld |
安全初始化设置
MySQL 8.0 在首次启动时,会为 root 用户生成一个临时的随机密码,并记录在日志文件中,我们需要找到这个密码,然后进行安全配置。
-
获取临时密码:
执行以下命令,从日志文件中筛选出临时密码:sudo grep 'temporary password' /var/log/mysqld.log
命令的输出会类似
A temporary password is generated for root@localhost: xxxxxxxx,请记下末尾的密码。 -
运行安全配置脚本:
MySQL 提供了一个名为mysql_secure_installation的交互式脚本,用于引导您完成一系列安全设置,包括设置新的root密码、移除匿名用户、禁止远程 root 登录等。sudo mysql_secure_installation
脚本首先会要求您输入之前获取的临时密码,验证通过后,它会询问您是否要设置新的密码验证策略组件(建议选择
y),然后设置一个新的root密码,MySQL 8.0 的默认密码策略要求较高,密码必须包含大小写字母、数字和特殊符号,且长度不少于8位,后续的提示,如移除匿名用户、禁止远程 root 登录、移除测试数据库等,为了安全起见,建议全部回答y(是)。
登录验证
完成安全配置后,您就可以使用新设置的 root 密码登录 MySQL 数据库了:
mysql -u root -p
系统会提示您输入密码,输入成功后,您将看到 MySQL 的命令行提示符 mysql>,至此,MySQL 已成功安装在您的 CentOS 7.2 系统上。
相关问答FAQs
问题 1:如果忘记了 MySQL 的 root 密码,应该如何重置?
解答: 重置 MySQL 8.0 的 root 密码需要几个步骤,停止 MySQL 服务:sudo systemctl stop mysqld,以“安全模式”启动 MySQL,该模式会跳过权限表验证:sudo mysqld_safe --skip-grant-tables &,无需密码即可登录:mysql -u root,登录后,切换到 mysql 系统数据库并执行密码重置命令:FLUSH PRIVILEGES;ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewStrongPassword';
(请将 YourNewStrongPassword 替换为您的新密码),完成后,退出 MySQL,正常重启 MySQL 服务:sudo systemctl restart mysqld,即可使用新密码登录。
问题 2:为什么无法从其他机器远程连接到这台 CentOS 服务器上的 MySQL?
解答: 远程连接失败通常由三个原因导致:1. 防火墙:CentOS 7 默认使用 firewalld,需要开放 MySQL 默认端口 3306,执行 sudo firewall-cmd --permanent --add-port=3306/tcp 并 sudo firewall-cmd --reload,2. MySQL 绑定地址:检查 MySQL 配置文件 /etc/my.cnf,确保 bind-address 参数没有设置为 0.0.1(仅限本机),可以将其注释掉或设置为服务器的内网 IP 地址 0.0.0(允许所有 IP 连接,但需确保网络安全),3. 用户权限:MySQL 的 root 用户默认只允许 localhost 连接,您需要为远程连接创建一个新用户或为现有用户授权,授权 root 用户从任何 IP () 访问:GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'YourPassword' WITH GRANT OPTION;,然后执行 FLUSH PRIVILEGES;,出于安全考虑,建议创建特定用户并限制其 IP 来源,而不是使用 root 或 。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!