在CentOS系统中,虽然可以通过yum
直接安装MySQL,但为了获取特定版本或进行更精细的控制,手动安装是许多系统管理员和开发者的首选,本文将详细介绍如何通过官方Yum仓库在CentOS上手动安装MySQL,这种方法既简化了依赖处理,又保留了手动选择版本的灵活性。
第一步:环境准备与旧版本清理
在开始新安装之前,确保系统环境干净是至关重要的,CentOS默认可能附带MariaDB(MySQL的一个分支),它与MySQL存在文件和端口冲突,必须先将其彻底移除。
检查系统中是否已安装MariaDB或MySQL:
rpm -qa | grep -i mariadb rpm -qa | grep -i mysql
如果上述命令返回任何包名,请使用yum
将其移除,移除MariaDB:
sudo yum remove mariadb-libs.x86_64
移除旧版本后,清理所有残留的配置文件和数据目录(通常为/var/lib/mysql
),以避免后续安装出现问题。
第二步:添加官方MySQL Yum仓库
手动安装的核心在于正确配置软件源,我们将从MySQL官网下载适用于您CentOS版本的Yum仓库配置包(.noarch.rpm
)。
访问MySQL Yum仓库下载页面(https://dev.mysql.com/downloads/repo/yum/),找到与您的CentOS版本相对应的链接,对于CentOS 7,可以使用wget
命令下载:
sudo wget https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm
下载完成后,使用yum localinstall
命令安装这个RPM包,此操作不会安装MySQL本身,而是在您的系统中添加一个名为mysql-community.repo
的仓库配置文件:
sudo yum localinstall mysql80-community-release-el7-5.noarch.rpm
安装完成后,可以通过yum repolist enabled | grep "mysql.*-community.*"
命令来验证仓库是否已成功添加并启用。
第三步:安装MySQL服务器
系统已准备好从官方仓库安装MySQL,使用以下命令安装MySQL社区服务器:
sudo yum install mysql-community-server
yum
会自动处理所有必要的依赖关系,如net-tools
、perl
等,并从您刚刚添加的仓库中获取最新稳定版的MySQL软件包。
安装完成后,启动MySQL服务并将其设置为开机自启:
sudo systemctl start mysqld sudo systemctl enable mysqld
通过systemctl status mysqld
可以检查服务运行状态,确保其处于active (running)
状态。
第四步:安全初始化配置
MySQL 5.7及以上版本在首次启动时,会为root
用户生成一个临时的随机密码,并记录在日志文件中,您需要找到这个密码以便进行首次登录和安全配置。
查看临时密码:
sudo grep 'temporary password' /var/log/mysqld.log
复制显示的密码,然后运行安全配置脚本:
mysql_secure_installation
脚本将引导您完成一系列安全设置:
- 验证密码组件:询问是否启用密码强度验证插件,建议选择
Y
(是),并设置密码策略等级(低、中、强)。 - 设置新密码:输入您刚才找到的临时密码,然后为
root
用户设置一个符合强度要求的新密码。 - 移除匿名用户:建议选择
Y
(是),删除默认的匿名账户,增强安全性。 - 禁止root远程登录:建议选择
Y
(是),防止root
用户从网络直接登录,降低风险。 - 移除测试数据库:建议选择
Y
(是),删除默认的test
数据库。 - 重新加载权限表:选择
Y
(是),使所有更改立即生效。
至此,MySQL的安装和基础安全配置已完成,您可以使用新设置的密码通过mysql -u root -p
命令登录数据库了。
相关问答FAQs
问题1:安装过程中提示“冲突的软件包”或与系统模块冲突,例如mysql-module
,该怎么办?
解答: 这种情况通常发生在CentOS 8或更高版本中,系统自带的AppStream仓库中包含了一个MySQL模块,要使用官方Yum仓库中的特定版本,必须先禁用系统默认的MySQL模块,执行以下命令即可:
sudo yum module disable mysql
禁用模块后,再执行yum install mysql-community-server
命令,yum
将正确地从您添加的官方仓库中解析和安装MySQL。
问题2:如果忘记了MySQL的root密码,如何重置?
解答: 重置root密码需要停止MySQL服务,并以“跳过权限表”的安全模式启动它。
- 停止服务:
sudo systemctl stop mysqld
- 安全模式启动:
sudo mysqld_safe --skip-grant-tables &
- 免密登录:
mysql -u root
- 重置密码:在MySQL命令行中执行以下SQL语句(将
'YourNewPassword'
替换为您的新密码):FLUSH PRIVILEGES; ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewPassword'; QUIT;
- 重启服务:终止安全模式进程(可能需要使用
kill
命令),然后正常启动MySQL服务:sudo systemctl start mysqld
。
完成以上步骤后,您就可以使用新密码登录了。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复