CentOS 7 安装 MySQL 8.0 完整指南
在 CentOS 7 环境中部署 MySQL 数据库时,往往需要处理旧版本残留与新版身份验证机制差异两大核心问题。本文将演示如何通过 RPM 包清理彻底移除历史版本,利用官方社区源获取最新软件,并解决初次连接失败及重置管理员密码的操作流程。
第1步:彻底卸载旧版 MySQL
如果系统曾安装过 MySQL 或其他兼容组件,必须先进行深度清理,避免文件冲突导致安装失败。首先检测现有的相关安装包。
# rpm -qa | grep mysql
若发现已安装的旧版本(如 MySQL 5.6 或更高),请按以下顺序卸载:
- 停止 MySQL 服务(如果正在运行):
# systemctl stop mysqld - 卸载 RPM 包。
# rpm -e --nodeps MySQL-server-xxx.rpm
# rpm -e --nodeps MySQL-client-xxx.rpm - 删除数据与配置文件。
# rm -rf /var/lib/mysql
# rm /etc/my.cnf - 查找并清除残留目录。
先定位路径:# whereis mysql
再强行删除相关文件(示例):# rm -rf /usr/lib64/mysql
第2步:下载并安装官方 Yum 源
为避免依赖关系混乱,建议使用官方提供的社区版 Release 包来配置 Yum 仓库。当前主流版本为 CentOS 7 对应的 el7 系列。
# wget http://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
随后将下载的 rpm 包安装至系统中,以激活新增的软件源:
# rpm -ivh mysql80-community-release-el7-3.noarch.rpm
第3步:安装 MySQL 服务端程序
开启配置好的社区源后,直接通过 Yum 命令完成服务端核心组件的下载与安装:
# yum install mysql-community-server
第4步:启动服务并初始化配置
安装完成后,启动数据库守护进程:
# systemctl start mysqld.service
第5步:获取临时密码并重置 root 密码
MySQL 8.0 引入了自动生成的随机初始密码机制。为了安全起见,请勿盲目设置固定密码,而应先获取系统自动分配的临时的密码。
- 查阅日志获取临时密码:
# grep 'temporary password' /var/log/mysqld.log
记录下最后一行显示的类似...@localhost: AbCd1234!中的字符串。 - 使用临时密码登录:
# mysql -uroot -p
粘贴刚才的临时密码进入 MySQL 交互界面。 - 修改 root 用户密码:
由于 MySQL 8.0 默认的mysql_native_password插件已被替换为更安全的caching_sha2_password,且对复杂度有强制要求(必须包含大小写字母、数字及特殊符号),建议直接在会话内执行修改操作:
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新强密码';
第6步:验证与常用连接命令
退出交互模式后,通过参数指定密码进行测试:
# mysql -uroot -p你的强密码
若能成功进入命令行提示符,则表示安装配置完毕。
常见问题排查
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'
这通常意味着数据库服务并未启动,请检查 systemctl status mysqld.service 并尝试重新启动。
Access denied for user 'root'@'localhost'
如果在修改密码之前尝试连接,可能会遇到此错误。此时需重新查看日志中的临时密码,或使用上述 ALTER USER 指令修正。
无法访问外部端口
防火墙可能阻挡了 3306 端口。可放行该端口:
# firewall-cmd --zone=public --add-port=3306/tcp --permanent
# firewall-cmd --reload
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









