讲师中心 微信公众号
AI工具推荐 视频效率加速

怎样利用Shell脚本一键完成云主机上的MySQL 5.7自动化安装?

千婷酱_2631

千婷酱_2631

发布时间:2026-07-16 10:35:47

|

634人浏览过

|

来源于php中文网

原创

CentOS 7.6–7.9 是 MySQL 5.7 官方兼容环境,需验证 cat /etc/redhat-release 和 uname -m(必须 x86_64),禁用 firewalld 或放行 3306 端口,确保 /var 剩余空间 ≥2GB,使用官方 el7 源并清理残留后启用 mysql57-community 仓库,初始化推荐 --initialize-insecure 配合显式 bind-address = 0.0.0.0 及用户权限配置。

怎样利用shell脚本一键完成云主机上的mysql 5.7自动化安装?

确认系统环境与MySQL 5.7兼容性

CentOS 7 是 MySQL 5.7 官方支持的主流发行版,但 CentOS 8+ 默认仓库已移除 MySQL 5.7(只提供 8.0),强行安装会触发依赖冲突或 yum install 失败。Debian/Ubuntu 同样不推荐——其 apt 源中 MySQL 5.7 已归档,且 mysql-server 包实际指向 8.x。

实操建议:

  • 仅在 CentOS 7.6–7.9 或 Red Hat Enterprise Linux 7 上执行该脚本
  • 运行前检查:cat /etc/redhat-release 和 uname -m(必须为 x86_64)
  • 禁用 firewalld 或提前放行 3306 端口,否则安装后无法远程连接
  • 确保 /var 分区剩余空间 ≥2GB——mysql-community-server 包解压后占用约 1.2GB

使用官方YUM源而非第三方repo

很多一键脚本用 epel 或自建 repo,结果装出 MariaDB 或报 Package: mysql-community-server-5.7.x.fc28 这类跨发行版错误。MySQL 官方 RPM 包严格绑定 el7 标签,必须用 https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm(注意版本号:当前最新是 -11,不是 -10 或 -12)。

关键操作:

  • 先清理残留:yum remove mysql* -y && rm -rf /var/lib/mysql /etc/my.cnf
  • 导入源:rpm -Uvh https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
  • 验证启用状态:yum repolist enabled | grep mysql —— 输出应含 mysql57-community/x86_64
  • 禁止自动升级到 8.0:sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/mysql-community.repo,再手动启用 5.7:sed -i 's/enabled=0/enabled=1/' /etc/yum.repos.d/mysql-community.repo

初始化时绕过默认密码生成机制

MySQL 5.7 启动后强制要求改密,而脚本若未捕获临时密码,后续 mysql -u root -p 会卡住。更糟的是,mysqld --initialize 在无 --user=mysql 时可能以 root 身份写入数据目录,导致权限错误。

MySQL
MySQL

编写正确的MySQL查询,避免字符集、索引和锁方面的常见陷阱。

下载

安全且可脚本化的做法:

  • 初始化前创建数据目录并赋权:mkdir -p /var/lib/mysql && chown mysql:mysql /var/lib/mysql
  • 用 --initialize-insecure(非生产环境)跳过密码生成:mysqld --initialize-insecure --user=mysql --datadir=/var/lib/mysql
  • 启动服务:systemctl start mysqld && systemctl enable mysqld
  • 首次登录不输密码:mysql -u root --skip-password -e "ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourPass123';"

注意:--initialize-insecure 仅限内网部署;如需合规,改用 --initialize + 解析 /var/log/mysqld.log 中的临时密码,但解析逻辑易受日志格式变更影响。

配置文件必须显式指定 bind-address

默认 my.cnf 中 bind-address = 127.0.0.1,导致云主机即使开了安全组也无法远程访问。直接删掉这行不行——MySQL 5.7 会 fallback 到 0.0.0.0,但可能暴露风险;硬写 0.0.0.0 又不符合最小权限原则。

稳妥方案:

  • 在 /etc/my.cnf 的 [mysqld] 段落末尾追加:bind-address = 0.0.0.0
  • 配套添加访问控制:mysql -uroot -pYourPass123 -e "CREATE USER 'app'@'%' IDENTIFIED BY 'AppPass123'; GRANT SELECT,INSERT,UPDATE ON *.* TO 'app'@'%'; FLUSH PRIVILEGES;"
  • 重启生效:systemctl restart mysqld,然后用 ss -tlnp | grep :3306 验证监听地址是否为 *:3306

云主机上漏掉 bind-address 修改,脚本跑完也连不上——这是最常被忽略的一步。

热门AI工具

更多
超级简历WonderCV

一款AI办公效率工具,主要用于免费求职简历模版下载制作,应届生职场人必备简历制作神器,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

Laper
Laper Hot

Laper是专为编剧、导演和制片人推出的 AI 原生剧本创作工具。

切问学术

切问学术是一款AI论文写作工具,复旦大学NLP团队推出的AI学术智能体。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

立刻MV
立刻MV Hot

立刻MV是一款AI文本写作工具,AI 音乐视频(MV)创作工具。

UpDream
UpDream Hot

一款AI视频创作工具,主要用于哔哩哔哩推出的自研AI视频创作工具,适合需要提升相关任务效率的用户。

SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

相关专题

更多
mysql修改数据表名
mysql修改数据表名

MySQL修改数据表:1、首先查看数据库中所有的表,代码为:‘SHOW TABLES;’;2、修改表名,代码为:‘ALTER TABLE 旧表名 RENAME [TO] 新表名;’。php中文网还提供MySQL的相关下载、相关课程等内容,供大家免费下载使用。

2093

2023.06.20

MySQL创建存储过程
MySQL创建存储过程

存储程序可以分为存储过程和函数,MySQL中创建存储过程和函数使用的语句分别为CREATE PROCEDURE和CREATE FUNCTION。使用CALL语句调用存储过程智能用输出变量返回值。函数可以从语句外调用(通过引用函数名),也能返回标量值。存储过程也可以调用其他存储过程。php中文网还提供MySQL创建存储过程的相关下载、相关课程等内容,供大家免费下载使用。

1279

2023.06.21

mongodb和mysql的区别
mongodb和mysql的区别

mongodb和mysql的区别:1、数据模型;2、查询语言;3、扩展性和性能;4、可靠性。本专题为大家提供mongodb和mysql的区别的相关的文章、下载、课程内容,供大家免费下载体验。

755

2023.07.18

mysql密码忘了怎么查看
mysql密码忘了怎么查看

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS 应用软件之一。那么mysql密码忘了怎么办呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2812

2023.07.19

mysql创建数据库
mysql创建数据库

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS 应用软件之一。那么mysql怎么创建数据库呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

4668

2023.07.25

mysql默认事务隔离级别
mysql默认事务隔离级别

MySQL是一种广泛使用的关系型数据库管理系统,它支持事务处理。事务是一组数据库操作,它们作为一个逻辑单元被一起执行。为了保证事务的一致性和隔离性,MySQL提供了不同的事务隔离级别。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

1079

2023.08.08

sqlserver和mysql区别
sqlserver和mysql区别

SQL Server和MySQL是两种广泛使用的关系型数据库管理系统。它们具有相似的功能和用途,但在某些方面存在一些显著的区别。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

4931

2023.08.11

mysql忘记密码
mysql忘记密码

MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。那么忘记mysql密码我们该怎么解决呢?php中文网给大家带来了相关的教程以及其他关于mysql的文章,欢迎大家前来学习阅读。

4402

2023.08.14

LLVM自定义Pass怎么写
LLVM自定义Pass怎么写

本专题聚焦LLVM自定义Pass开发,整理Pass类结构、run()方法、PreservedAnalyses、CMake构建、插件注册、-load-pass-plugin加载和测试用例编写流程。

80

2026.09.30

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
尚观shell视频教程
尚观shell视频教程

共8课时 | 1.9万人学习

Linux开发视频教程
Linux开发视频教程

共18课时 | 4.6万人学习

Perl 入门教程
Perl 入门教程

共29课时 | 31.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn