在 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
或 。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复