003-Python-脚本学习-安装mysql数据库(CentOS7.9)

article/2025/6/26 13:22:51
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# Name: Python-脚本学习-安装mysql数据库(CentOS7.9).py
# Author: songp-it
# Date: 2024-03-21
# Description: 在CentOS 7.9上安装MySQL数据库import subprocess
import sys
import osdef disable_selinux():"""禁用SELinux"""try:subprocess.run(["sed", "-i", "s/SELINUX=enforcing/SELINUX=disabled/g", "/etc/selinux/config"],check=True)print("SELinux已禁用")except subprocess.CalledProcessError as e:print(f"禁用SELinux失败: {e}",file=sys.stderr)sys.exit(1)def disable_firewall():"""禁用防火墙"""try:subprocess.run(["systemctl", "stop", "firewalld"],check=True)subprocess.run(["systemctl", "disable", "firewalld"],check=True)print("防火墙已禁用")except subprocess.CalledProcessError as e:print(f"禁用防火墙失败: {e}",file=sys.stderr)sys.exit(1)def install_mysql():"""安装MySQL数据库"""try:# 安装基础依赖subprocess.run(["yum", "install", "-y", "epel-release"],check=True)subprocess.run(["yum", "install", "-y", "wget", "gcc", "libxml2", "libxml2-devel", "net-snmp", "net-snmp-devel", "libevent", "libevent-devel", "curl", "curl-devel", "java-devel", "yum-utils"],check=True)# 下载并安装MySQL源subprocess.run(["wget", "https://repo.mysql.com/mysql80-community-release-el7-3.noarch.rpm"],check=True)subprocess.run(["rpm", "-ivh", "mysql80-community-release-el7-3.noarch.rpm", "--nodeps", "--force"],check=True)# 清理yum缓存并重新生成subprocess.run(["yum", "clean", "all"],check=True)subprocess.run(["yum", "makecache"],check=True)# 安装MySQL服务器(跳过GPG检查)subprocess.run(["yum", "install", "-y", "mysql-community-server", "--nogpgcheck"],check=True)# 启动MySQL服务subprocess.run(["systemctl", "start", "mysqld"],check=True)subprocess.run(["systemctl", "enable", "mysqld"],check=True)    print("MySQL数据库安装完成")except subprocess.CalledProcessError as e:print(f"安装MySQL数据库失败: {e}",file=sys.stderr)sys.exit(1)def configure_mysql():"""配置MySQL数据库"""try:# 获取临时密码temp_password_output = subprocess.check_output(["grep", "temporary password", "/var/log/mysqld.log"]).decode()# 使用更精确的格式匹配temp_password = temp_password_output.split("root@localhost:")[1].strip()print(f"MySQL数据库临时密码: {temp_password}")# 修改root密码subprocess.run(["mysql", "-uroot", f"-p{temp_password}", "--connect-expired-password", "-e", "ALTER USER 'root'@'localhost' IDENTIFIED BY 'Admin@123456';"],check=True)print("MySQL数据库密码修改完成")# 配置远程访问subprocess.run(["mysql", "-uroot", "-pAdmin@123456", "-e", "use mysql;update user set Host='%' where User='root';flush privileges;"],check=True)print("MySQL远程访问配置完成")except subprocess.CalledProcessError as e:print(f"配置MySQL数据库失败: {e}",file=sys.stderr)sys.exit(1)if __name__ == "__main__":if os.geteuid() != 0:print("请使用root用户运行此脚本",file=sys.stderr)sys.exit(1)print("开始禁用SELinux和firewalld")disable_selinux()disable_firewall()print("开始安装MySQL")install_mysql()configure_mysql()print("MySQL安装和配置完成") 

在这里插入图片描述


http://www.hkcw.cn/article/OHCUFQkALF.shtml

相关文章

数字孪生离心泵,精准复刻泵体运行

图扑数字孪生离心泵,以 1:1 高精度建模,逼真呈现离心泵结构。动态模拟内部水流与部件运转,实时反馈运行参数,助力运维人员精准掌握泵体状态,高效诊断故障,提升离心泵运行管理水平。

这几种“奇葩果” 买了就后悔!

这几种“奇葩果”买了就后悔。“拇指西瓜”,长得像西瓜的微缩板,但压根不是西瓜。吃起来也远没有西瓜的甘甜多汁。刺角瓜,也叫火参果。很多人因为奇异的外表而好奇购买,味道酸涩。虽然富含维生素C与膳食纤维,但价格却被商家炒得过于昂贵。露兜果,也叫野菠萝,外观形似菠萝…

王楚钦与女粉丝合影手立马放背后,妥妥的男德模范生!

王楚钦与女粉丝合影手立马放背后。王楚钦现身魏桥参加活动,现场人气爆棚,大批球迷慕名而来,只为近距离目睹偶像风采。难得的机会让合影环节热度高涨,王楚钦又成了人形打卡机,耐心地满足球迷的合影请求。遇到女性球迷合影时,王楚钦的手臂自动就藏了起来,保持得体的距离,…

Java开发工具——Arthas线上查询工具

摘要 本文主要介绍了 Java 开发工具 Arthas 的安装、启动及使用。包括本地安装与启动、容器安装与启动、基础命令与使用以及常用命令与使用等内容。通过 Arthas,开发者可以方便地对 Java 应用进行线上排错和监控,提高开发效率。 1. Arthas 本地安装与启…

5.RV1126-OPENCV 图形计算面积

一.图形面积、弧长计算介绍 前面我们已经把图形轮廓的检测、画框等功能讲解了一遍。这次主要结合轮廓检测的 API 去计算图形的面积,这些面积可以是矩形、圆形等等。图形面积计算和弧长计算常用于车辆识别、桥梁识别等重要功能,常用的 API 如 contourArea…

rabbitmq Topic交换机简介

1. Topic交换机 说明 尽管使用 direct 交换机改进了我们的系统,但是它仍然存在局限性——比方说我们的交换机绑定了多个不同的routingKey,在direct模式中虽然能做到有选择性地接收日志,但是它的选择性是单一的,就是说我的一条消息…

JavaSE 常见问题解析

最近正在复习Java八股,所以会将一些热门的八股问题,结合ai与自身理解写成博客便于记忆 本文将以以上问题作为基础 String 相关问题 String 底层数据类型? String 在 Java 9 之前底层使用 char[] 数组存储字符数据,Java 9 及以…

潜入水面:穿越“冰山”之旅,探寻Java鲜为人知的一面

“冰山”梗是一种网络现象,幽默而有时令人不安地展示了某个主题的知识或入门层次——从冰山之巅简单、广为人知的常识到只有最坚韧的老兵才能理解的黑暗、神秘深处。想象一座海洋上矗立的冰山:表面可见的部分只是开始,真正的魔法(…

如何配置mvn镜像源为华为云

如何配置mvn镜像源为华为云 # 查找mvn 配置文件 mvn -X help:effective-settings | grep settings.xml# 配置mvn镜像源为华为云,/home/apache-maven-3.9.5/conf/settings.xml文件路径需要根据上一步中查询结果调整 cat > /home/apache-maven-3.9.5/conf/setting…

【DAY37】早停策略和模型权重的保存

内容来自浙大疏锦行python打卡训练营 浙大疏锦行 知识点: 过拟合的判断:测试集和训练集同步打印指标模型的保存和加载 仅保存权重保存权重和模型保存全部信息checkpoint,还包含训练状态 早停策略 作业: 对信贷数据集训练后保存权…

TASK OA 案例hook

TASK OA 案例hook 定义的状态 useRef & useForm ref使用: xxx 尽可能使用组件库antd内部提供的方法 两大稍微比较难的组件:table 和 form 服务器通信 使用async/await 不用想配套使用 try/catch 初次渲染拉取query。useEffect(..., []) 状态更新useE…

Kafka集成Flume/Spark/Flink(大数据)/SpringBoot

Kafka集成Flume Flume生产者 ③、安装Flume,上传apache-flume的压缩包.tar.gz到Linux系统的software,并解压到/opt/module目录下,并修改其名称为flume Flume消费者 Kafka集成Spark 生产者 object SparkKafkaProducer{def main(args:Array[S…

Linux指令:

我们今天来学习一下linux的一些相关的指令L: 1. 快速认识6~8个指令: 第一条:pwd pwd指令表示的是我当前在哪条路径下;我当前在哪里; 我们看这个第二句话,因为在windows环境下,当我们登录进入到…

网络攻防技术五:网络扫描技术

文章目录 一、网络扫描的基础概念二、主机发现三、端口扫描1、端口号2、端口扫描技术3、端口扫描隐秘策略 四、操作系统识别五、漏洞扫描六、简答题1. 主机扫描的目的是什么?请简述主机扫描方法。2. 端口扫描的目的是什么?请简述端口扫描方法及扫描策略。…

win32相关(虚拟内存和物理内存)

虚拟内存和物理内存 在win32操作系统下,每个进程都有它自己独立的4GB空间,是window给它分配的一个虚拟空间,并不是真正的物理空间,这4GB空间中,分为高2G和低2G,高2G是应用程序的,低2G空间是给内…

00后新人“整顿”婚礼 简简单单更实在!

00后新人“整顿”婚礼简简单单更实在!婚礼当天,宾客们刚坐下,新郎新娘就手拉手走上台。新郎咧嘴一笑:“感谢各位来捧场,我俩今天正式领证了!”新娘接茬:“废话不多说,大家吃好喝好,菜不够再加,吃不完打包带走!”台下瞬间爆发出欢呼声,这场婚礼从开始到宣布开席,总…

德约科维奇vs诺里 法网百胜里程碑

北京时间6月2日,法网男单第四轮比赛中,赛会六号种子德约科维奇以6-2、6-3、6-2的比分击败诺里,成功晋级八强。首盘开始,德约连保带破取得2-0领先。尽管诺里随后回破,但德约在第四局再次破发,掌控了比赛节奏。最终在诺里的关键发球局中,德约再次破发,以6-2赢得首盘。第二…

地磁暴又来了!这些地方受影响 我国北部或现极光

中国气象局国家空间天气监测预警中心报告称,北京时间5月31日太阳爆发了耀斑,地球可能连续三天发生地磁暴,我国北部有机会出现较为明显的极光。具体来说,5月31日7点45分左右,太阳活动区14100开始爆发耀斑,软X射线流量快速上升,8点05分达到峰值——M8.1级中等耀斑强度。伴…

北京今天晴朗伴大风 阵风可达6至7级 明起炎热升级 气温将明显升高

今天6月3日,北京天气以晴朗为主,北风加大,阵风可达6至7级。未来两天,北京将继续保持晴朗,气温显著升高。昨天,北京大部分地区晴朗,北部和西部出现分散性阵雨或雷阵雨,但雨量不大。多地北风强劲,阵风达到6至7级。据北京市气象台预计,今天白天晴间多云,北风从2级左右逐…

全都要!德天空:新月将和胜利争夺C罗,同时致力于签下B费 沙特豪门雄心勃勃

据德国天空体育报道,利雅得新月在与利雅得胜利争夺C罗的同时,还致力于签下布鲁诺-费尔南德斯。C罗与利雅得胜利的合同将于6月底到期。尽管利雅得胜利的体育总监耶罗极力挽留,但利雅得新月希望签下这名40岁的老将,并带他参加即将举行的世俱杯(6月14日至7月13日)。利雅得新…