当前位置: 首页 > news >正文

MySql自动安装脚本

一、脚本安装流程

1. 添加MySQL的Repository

  • 使用wget命令从MySQL官方网站下载Yum Repository的RPM包。
  • 使用rpm -ivh命令安装下载的RPM包,以添加MySQL的Yum Repository。

2. 安装mysql-community-server

  • 使用yum install -y mysql-community-server --nogpgcheck命令安装MySQL服务器。
  • 安装过程中会自动安装MySQL的依赖包。

3. 启动MySQL服务,获取临时密码

  • 使用systemctl start mysqld命令启动MySQL服务。
  • 使用systemctl enable mysqld命令设置MySQL服务开机自启动。
  • 从MySQL日志文件/var/log/mysqld.log中提取临时密码。

4. 修改密码

  • 使用mysql --connect-expired-password -uroot -p"$TEMP_PASSWD"命令登录MySQL。
  • 使用ALTER USER语句修改root用户的密码。
  • 验证新密码是否生效。

二、卸载MySQL流程

1. 停止MySQL服务

  • 使用systemctl stop mysqld命令停止MySQL服务。

2. 卸载MySQL相关包

  • 使用yum remove -y命令卸载所有与MySQL相关的包,包括mysql-community-clientmysql-community-server等。

3. 删除MySQL数据和日志文件

  • 使用rm -rf命令删除MySQL的数据目录/var/lib/mysql、日志文件/var/log/mysqld.log等。

4. 删除MySQL配置文件

  • 使用rm -rf命令删除MySQL的配置文件/etc/my.cnf/etc/my.cnf.d等。

5. 清理Yum Repository信息

  • 使用find命令删除/etc/yum.repos.d/目录下所有与MySQL相关的Repository文件。

6. 清理Yum缓存

  • 使用yum clean all命令清理Yum缓存。

三、Shell脚本

#!/bin/bashset -e# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[0;33m'
NC='\033[0m' # 恢复默认颜色# 日志文件路径
LOG_FILE="/var/log/mysql_install.log"# MySQL Yum Repository下载URL
DOWNLOAD_URL="https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm"
RPM_FILE=$(basename "$DOWNLOAD_URL")# MySQL root密码
PASSWD='YourNewRootPasswordHere' # 请替换为实际的新密码# 日志记录函数
log() {echo -e "$(date '+%Y-%m-%d %H:%M:%S') - $1" | tee -a "$LOG_FILE"
}# 错误处理函数
error_exit() {log "${RED}ERROR: $1${NC}"exit 1
}# 安装MySQL
install_mysql() {log "${GREEN}Adding MySQL Yum Repository...${NC}"wget -c "$DOWNLOAD_URL" || error_exit "Failed to download MySQL Yum Repository."if rpm -ivh "$RPM_FILE"; thenlog "${GREEN}Successfully added MySQL Yum Repository.${NC}"elseerror_exit "Failed to add MySQL Yum Repository."filog "${GREEN}Updating Yum cache...${NC}"yum clean all || error_exit "Failed to clean Yum cache."if yum makecache; thenlog "${GREEN}Yum cache updated successfully.${NC}"elseerror_exit "Failed to update Yum cache."filog "${GREEN}Installing MySQL...${NC}"if yum install -y mysql-community-server --nogpgcheck; thenlog "${GREEN}MySQL installed successfully.${NC}"elseerror_exit "Failed to install MySQL."filog "${GREEN}Starting MySQL service...${NC}"if systemctl start mysqld; thenlog "${GREEN}MySQL service started successfully.${NC}"elseerror_exit "Failed to start MySQL service."fisystemctl enable mysqldsleep 5TEMP_PASSWD=$(grep 'temporary password' /var/log/mysqld.log | awk '{print $NF}')log "${YELLOW}Temporary password is: $TEMP_PASSWD${NC}"log "${GREEN}Changing root password...${NC}"mysql --connect-expired-password -uroot -p"$TEMP_PASSWD" -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '$PASSWD'; flush privileges;" &>/dev/null || error_exit "Failed to change root password."if mysql -uroot -p"$PASSWD" -e "status" &>/dev/null; thenlog "${GREEN}MySQL installation completed and root password changed successfully.${NC}"log "${GREEN}New root password is: $PASSWD${NC}"elseerror_exit "Failed to change root password, please check manually."firm -f "$RPM_FILE"log "${GREEN}Installation script completed successfully.${NC}"
}# 卸载MySQL
uninstall_mysql() {if [ "$EUID" -ne 0 ]; thenecho -e "${RED}Please run as root${NC}"exit 1fiMYSQL_PACKAGES=(mysql-community-clientmysql-community-client-pluginsmysql-community-commonmysql-community-icu-data-filesmysql-community-libsmysql-community-servermysql80-community-release)echo -e "${YELLOW}Stopping MySQL service...${NC}"systemctl stop mysqld || echo -e "${YELLOW}MySQL service already stopped.${NC}"for pkg in "${MYSQL_PACKAGES[@]}"; doif rpm -q "$pkg" &>/dev/null; thenecho -e "${YELLOW}Uninstalling $pkg...${NC}"yum remove -y "$pkg"elseecho -e "${YELLOW}$pkg is not installed.${NC}"fidoneecho -e "${YELLOW}Deleting MySQL data and log files...${NC}"rm -rf /var/lib/mysql /var/log/mysqld.log /var/run/mysqldecho -e "${YELLOW}Deleting MySQL configuration files...${NC}"rm -rf /etc/my.cnf /etc/my.cnf.d /etc/mysqlecho -e "${YELLOW}Cleaning up Yum repository information...${NC}"find /etc/yum.repos.d/ -type f -name "mysql-community*" -exec rm -f {} \;echo -e "${YELLOW}Cleaning Yum cache...${NC}"yum clean allecho -e "${GREEN}MySQL and its databases have been successfully removed from your system.${NC}"
}# 用户界面
show_menu() {echo -e "${GREEN}===================================${NC}"echo -e "${GREEN}  MySQL Installation/Uninstallation  ${NC}"echo -e "${GREEN}===================================${NC}"echo -e "1. Install MySQL"echo -e "2. Uninstall MySQL"echo -e "3. Exit"echo -e "${GREEN}===================================${NC}"read -p "Please choose an option (1/2/3): " choicecase $choice in1) install_mysql ;;2) uninstall_mysql ;;3) exit 0 ;;*) echo -e "${RED}Invalid option, please try again.${NC}" && show_menu ;;esac
}# 主函数
main() {show_menu
}# 执行主函数
main

四、脚本说明

  • 日志记录:脚本中的所有操作都会记录到/var/log/mysql_install.log文件中,方便后续排查问题。
  • 错误处理:如果某个步骤失败,脚本会立即停止并输出错误信息。
  • 用户界面:脚本提供了一个简单的用户界面,用户可以选择安装或卸载MySQL。
  • 卸载功能:卸载功能会彻底删除MySQL及其相关文件,确保系统干净。

五、使用说明

  1. 安装MySQL

    • 运行脚本后选择1,脚本会自动下载并安装MySQL,设置root密码。
  2. 卸载MySQL

    • 运行脚本后选择2,脚本会卸载MySQL并删除所有相关文件和配置。
  3. 退出脚本

    • 运行脚本后选择3,脚本会直接退出。

代码仓库地址:https://gitee.com/lv-tinghu/linux-script.git


http://www.mrgr.cn/news/93819.html

相关文章:

  • 【单片机】ARM 处理器简介
  • webshell一些上传心得
  • LeetCode --- 439周赛
  • AFL++安装
  • 《苍穹外卖》SpringBoot后端开发项目重点知识整理(DAY1 to DAY3)
  • 【Git】linux搭建Gitea配置mysql数据库
  • nlp培训重点-5
  • OSPF的各种LSA类型,多区域及特殊区域
  • windows:curl: (60) schannel: SEC_E_UNTRUSTED_ROOT (0x80090325)
  • H5页面在移动端自动横屏
  • Unity Shader学习总结
  • 数据增强术:如何利用大模型(LLMs)来模拟不同的扰动类型以增强信息提取任务的鲁棒性
  • Android 仿 DeepSeek 思考效果:逐字显示 AI 生成内容,支持加粗、颜色,复制内容
  • 『MaxKB系列(一)』在Windows下搭建MaxKB开发环境
  • 现代互联网网络安全与操作系统安全防御概要
  • 简单的二元语言模型bigram实现
  • 【VUE2】第三期——样式冲突、组件通信、异步更新、自定义指令、插槽
  • Python实例:PyMuPDF实现PDF翻译,英文翻译为中文,并按段落创建中文PDF
  • LangChain4j开发RAG入门示例
  • 前端需要在大模型项目中具备的知识