CentOS 7 一键安装 MySQL 5.7 Shell 脚本及远程配置
本内容提供用于在 CentOS 7 环境下自动化安装 MySQL 5.7 的 Shell 脚本。该工具集成了环境依赖处理、服务启动、初始密码修改及安全策略调整,旨在简化手动配置流程,帮助用户快速完成本地或服务器上的数据库部署。
安装环境与准备工作
该脚本设计主要针对基于 EL7 内核的 Linux 发行版,例如 Oracle Linux、Red Hat Enterprise Linux (RHEL) 及 CentOS 7。虽然脚本逻辑可适配其他 EL6/EL8/EL9 平台,但当前代码硬编码了针对 EL7 的 RPM 包路径。若需安装 MySQL 8.x 版本,需自行修改 YUM 源配置部分的版本号参数。
第1步:获取并运行脚本
目的:执行自动化安装程序。
操作:将脚本保存为 .sh 文件(如 install_mysql.sh),赋予执行权限后通过 bash 或 sh 命令运行。
注意:脚本需要 root 权限以执行系统级安装和服务控制。
脚本核心功能解析
第2步:YUM 源配置与 GPG 密钥处理
入口:脚本前置部分。
动作:
1. 下载官方社区版 Release 包:wget https://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm。
2. 安装 Release 包并导入最新 GPG Key:rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022。
3. 使用 YUM 安装服务端:yum install mysql-server -y。
关键点:必须更新 GPG 验证密钥。若不导入新密钥,安装过程可能因签名验证失败而报错,提示 GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql。
第3步:启动服务与提取初始密码
入口:安装完成后步骤。
动作:
1. 启动 mysqld 服务:systemctl start mysqld.service。
2. 从日志中提取随机生成的初始密码:cat /var/log/mysqld.log | grep password | awk '{print $NF}'。
完成状态:脚本回显 “MySQL启动成功”,并在终端显示临时密码供后续使用。
第4步:交互式重置 Root 密码
目的:替换默认复杂随机密码,便于记忆和后续管理。 操作:脚本进入循环等待用户输入两次新密码以确保一致。
重要参数调整:在执行 ALTER USER 之前,脚本先执行以下 SQL 语句以降低 MySQL 5.7 默认的密码强度校验要求:
set global validate_password_policy=0; set global validate_password_length=1;
随后连接数据库并修改密码:mysql --connect-expired-password -uroot -p"${initpasswd}" -e "... alter user 'root'@'localhost' identified by '${newpasswd}';"
第5步:开启远程访问权限
目的:允许非 localhost 主机连接到数据库实例。
动作:使用新设置的密码登录 MySQL,执行 SQL 更新用户表:
update mysql.user set Host = '%' where Host = 'localhost' and User='root'; flush privileges;
风险提示:将 root 用户的 Host 设置为 '%' 意味着任何 IP 均可尝试连接,建议配合防火墙(如 iptables/firewalld)限制特定来源 IP,或为远程应用创建专用低权限账户而非直接使用 root。
常见问题排错
- GPG 验证失败:如果安装过程中出现包签名错误,请确保已运行
rpm --import命令导入最新的官方密钥。 - 密码强度不足:MySQL 5.7 默认启用密码策略,若未提前调整
validate_password_policy和length,普通弱密码将无法设置成功。 - 服务启动失败:检查
/var/log/mysqld.log查看具体原因,常见于端口冲突或数据目录初始化未完成。
以上就是 CentOS 7 一键安装 MySQL 5.7 Shell 脚本的详细实现方法,更多关于 MySQL 自动化部署的资料请关注本站其它相关文章!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













