mysql 5 or 8 数据库管理,破解管理员密码,创建用户和数据库,开放远程登录,一键删除用户和数据库,shell脚本自动化

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 安装mysql8数据库创,建用户并创建测试表,修改密码

#!/bin/bash
# 数据库管理脚本: 安装mysql8数据库创,建用户并创建测试表,修改密码,

InputRead(){
echo " 懒得输入信息,我已经在脚本内配置登录信息,请一直回车确认"
read -p "请输入管理员用户:" rootuser
read -p "请输入管理员密码:" rootuserpasswd
read -p "指定用户名:" user
read -p "指定用户密码:" passwd
read -p "指定用户数据库:" database
sleep 3;
# rootuser=root             ;rootuserpasswd=eisc.cn        ;user=eisc          ;passwd=eisc.cn          ;database=eisc   ;
echo "您输入的信息为:$rootuser $rootuserpasswd $user $passwd $database"
}

Mysql8(){
mysqlrpm=$(rpm -qa | grep mysql | wc -l)
   if [ $mysqlrpm -lt 1 ]
      then
          echo "发现MySQL 没有安装,正再安装。。。。"
          yum localinstall https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm -y
          # yum localinstall是用来安装本地rpm包的命令,首先rpm包要先下载到本地,然后在本地目录执行yum localinstall *.rpm
          yum install mysql-community-server -y
          # 安装mysql
      else
          echo "----  mysql 已经安装 ----"
   fi
}

CreateUser5(){
#------------ mysql5.x 一键创建和删除数据库和用户  --------------#
mysql -u$rootuser -p$rootuserpasswd -e "create database $database character set utf8 collate utf8_bin; grant all on $database.* to '$user'@'localhost' identified by '$passwd'; grant all on $database.* to '$user'@'%' identified by '$passwd'; show databases;SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS ListUsername FROM mysql.user where User='$user';grant lock tables on $database.* to '$user'@'localhost';"
                                                               #一键创建数据库,用户
                                                               #创建数据库eisc写入字符编码utf8校验字符编码utf8_bin
                                                               #需要先在本地grantall创建用户,然后再创建远程用,否则出错。
                                                               #查看数据库,从mysql中的user表选择user,host列的信息查看 指定用户列表
                                                               #mysqlCONCAT()函数用于将多个字符串连接成一个字符串
                                                               # grant lock tables on $database.* to '$user'@'localhost';  导入导出数据库的权限
}
DropUser5(){
 mysql -u$rootuser -p$rootuserpasswd -e "DROP user '$user'@'localhost'; DROP user '$user'@'%';  drop database $database;show databases;SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS ListUser FROM mysql.user where User='$user';"
                                                              #一键删除数据库,用户
}

CreateUser7(){
#------------ mysql7.x 一键创建和删除数据库和用户  --------------#
 mysql -u$rootuser -p$rootuserpasswd -e "use mysql;select user,authentication_string from user; set global read_only=0; set global validate_password.policy=0 ; set global validate_password.length=6;create database $database character set utf8 collate utf8_bin; create user '$user'@'localhost' identified by '$passwd';create user '$user'@'%' identified by '$passwd' ; show databases;SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS ListUsername FROM mysql.user where User='$user';           grant all privileges on $database.* to '$user'@'localhost' ; grant all privileges  on $database.* to '$user'@'%' ; SHOW GRANTS FOR $user;grant lock tables on $database.* to '$user'@'localhost';FLUSH PRIVILEGES;"
                                                     # 一键创建用户
                                                     # grant all privileges on eisc.* to 'eisc'@'localhost'        # 授 予在eisc数据库上所有权限
                                                     # 开放指定权限:将all privileges 改为:select,update,delete,create  # 增删查改
                                                     # revoke all privileges on *.* from 'eisc'@'localhost'           # 撤销所有权限
                                                     # set global read_only=0; 主库写入权限,0开启,1关闭,
                                                     # 关闭状态报错  The MySQL server is running with the --read-only option  任何用户无法创建数据库表等
                                                     # grant lock tables on $database.* to '$user'@'localhost'; 导入导出数据库的权限

}
DropUser7(){
 mysql -u$rootuser -p$rootuserpasswd -e "drop database $database; drop user '$user'@'localhost' ;drop user '$user'@'%'; "
                                                    # 一键删除:数据库,用户
}


UpdateUser(){
#--------------------  mysql 破解重置root密码 ----------------#
echo "Hello, welcome to continuous integration eisc.cn mysql 同时破解远程和localhost数据库密码";


mycnf="/etc/my.cnf"
NR=`cat -n $mycnf | grep "\[mysqld\]" | awk -F" " '{print $1}'` ; echo $NR
                  # 找到 [mysqld] 标签所在行
sed -i "/skip-grant-tables/d" $mycnf
                  # 删除这个root免密登录配置,重新添加
sed -i "$NR a skip-grant-tables" $mycnf ; systemctl restart mysqld mariadb
                  # 在mysqld 标签下面增加免密登录配置信息
                  # 重启数据库
echo "您输入的管理员root信息为:$rootuser $rootuserpasswd"
mysqlversion=$(mysql -e "select version();" | awk -F"." 'NR==2{print $1}') ; echo "mysql版本:$mysqlversion";
if [ $mysqlversion -ge 7 ];then
      echo "当前数据库版本大于7"
      mysql -e "use mysql;select user,authentication_string from user; set global read_only=0;set global read_only=1; set global validate_password.policy=0 ; set global validate_password.length=6;flush privileges;alter user '$rootuser'@'localhost' identified by '$rootuserpasswd';alter user '$setuser'@'%' identified by '$rootuserpasswd';"
   else
      mysql -e "use mysql;select user,authentication_string from user; set global read_only=0;set global read_only=1; use mysql;select user,authentication_string from user; set global read_only=0;set global read_only=1; UPDATE user SET password=password('$rootuserpasswd') WHERE user='$rootuser';"
      echo "低于7的版破解"
fi

                  # 登录数据库修改root密码为:eisc.cn
                  # 重点:set global read_only=0; # 开启主库写入 flush privileges; # 生效权限
                                  # set global validate_password.policy=0 ; 修改密码  set global validate_password.length=6; 密码长度为6
                  # 关掉新主库的只读属性,读写属性,密码长度为6
sed -i "/skip-grant-tables/d" $mycnf; systemctl restart mysqld mariadb
                  # 删除之前的配置,重启数据
}

TestTables(){
#--------------------  test aaa bbb 测试表 ----------------#
mysql -u$user -p$passwd -e "use $database; select now(); DROP TABLE IF EXISTS aaa;create table aaa(id int,name varchar(20),password varchar(255),xingqi varchar(255),city varchar(255));insert into aaa(id,name,password,xingqi,city) values('1','aaa','qqqqq','11111','ggggggg'),('2','bbb','qqqqq','11111','ggggggg'),('3','ccc','qqqqq','11111','ggggggg'),('4','ddd','qqqqq','11111','ggggggg'),('5','eee','qqqqq','11111','ggggggg');show tables;select * from aaa;"

mysql -u$user -p$passwd -e "use $database; select now(); drop table if exists bbb;create table bbb(id int,name varchar(20),password varchar(255),xingqi varchar(255),city varchar(255));insert into bbb(id,name,password,xingqi,city) values('1','aaa','qqqqq','11111','ggggggg'),('2','bbb','qqqqq','11111','ggggggg'),('3','ccc','qqqqq','11111','ggggggg'),('4','ddd','qqqqq','11111','ggggggg'),('5','eee','qqqqq','11111','ggggggg');show tables;select * from bbb;"

}

runningeisc(){
Mysql8
echo "

编号            功能
1           破解重置root密码
2           创建用户并开放远程登录 创建aaa  bbb 测试表
3           删除用户,并且删除该用户的数据库
"
read -p "eisc 为您提供服务,请输入编码进行执行功能:" runread
echo "您执行了函数: $runread  ";
case $runread in
"1") echo "执行函数:1           破解重置root密码"
InputRead
UpdateUser
echo "使用用户更改后的信息:$rootuser $rootuserpasswd  登录数据库查询时间:"
mysql -u$rootuser -p$rootuserpasswd -e" select now();"
;;

"2") echo "执行函数:2           创建用户并开放远程登录"
InputRead
mysqlversion=$(mysql -u$rootuser -p$rootuserpasswd -e "select version();" | awk -F"." 'NR==2{print $1}') ; echo "mysql版本:$mysqlversion";
if [ $mysqlversion -ge 7 ];then
      echo "当前数据库版本大于7,正在执行。。。"
      CreateUser7
      TestTables
   else
      echo "数据库版本低于7 ,正在执行。。。 "
          CreateUser5
fi

;;

"3") echo "执行函数:3           删除用户,并且删除该用户的数据库"
InputRead
mysqlversion=$(mysql -u$rootuser -p$rootuserpasswd -e "select version();" | awk -F"." 'NR==2{print $1}') ; echo "mysql版本:$mysqlversion";
if [ $mysqlversion -ge 7 ];then
      echo "当前数据库版本大于7,正在执行。。。"
      DropUser7
   else
      echo "数据库版本低于7 ,正在执行。。。 "
          DropUser5
fi
;;
*) echo "输入无效,请重新输入!"
;;
esac
}
runningeisc
#mysql -u$rootuser -p$rootuserpasswd -e "drop database eisc;drop user eisc@'localhost';drop user eisc@'%';" 一键删除测试账号
# wget www.eisc.cn/file/shell/mysql-contol-config.sh ; sh mysql-contol-config.sh;
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
26天前
|
数据采集 监控 数据挖掘
Python自动化脚本:高效办公新助手###
本文将带你走进Python自动化脚本的奇妙世界,探索其在提升办公效率中的强大潜力。随着信息技术的飞速发展,重复性工作逐渐被自动化工具取代。Python作为一门简洁而强大的编程语言,凭借其丰富的库支持和易学易用的特点,成为编写自动化脚本的首选。无论是数据处理、文件管理还是网页爬虫,Python都能游刃有余地完成任务,极大地减轻了人工操作的负担。接下来,让我们一起领略Python自动化脚本的魅力,开启高效办公的新篇章。 ###
|
19天前
|
Android开发 开发者 Python
通过标签清理微信好友:Python自动化脚本解析
微信已成为日常生活中的重要社交工具,但随着使用时间增长,好友列表可能变得臃肿。本文介绍了一个基于 Python 的自动化脚本,利用 `uiautomator2` 库,通过模拟用户操作实现根据标签批量清理微信好友的功能。脚本包括环境准备、类定义、方法实现等部分,详细解析了如何通过标签筛选并删除好友,适合需要批量管理微信好友的用户。
25 7
|
17天前
|
运维 Kubernetes Devops
自动化运维:从脚本到工具的演进之旅
在数字化浪潮中,自动化运维成为提升效率、保障系统稳定的关键。本文将探索自动化运维的发展脉络,从基础的Shell脚本编写到复杂的自动化工具应用,揭示这一技术变革如何重塑IT运维领域。我们将通过实际案例,展示自动化运维在简化工作流程、提高响应速度和降低人为错误中的重要作用。无论你是初学者还是资深专家,这篇文章都将为你提供宝贵的洞见和实用的技巧。
|
25天前
|
SQL 测试技术 API
如何编写API接口的自动化测试脚本
本文详细介绍了编写API自动化测试脚本的方法和最佳实践,涵盖确定测试需求、选择测试框架、编写测试脚本(如使用Postman和Python Requests库)、参数化和数据驱动测试、断言和验证、集成CI/CD、生成测试报告及维护更新等内容,旨在帮助开发者构建高效可靠的API测试体系。
|
22天前
|
运维 Devops
自动化运维:从脚本到DevOps的进化之旅
在数字化时代,自动化运维不仅是提高生产效率的关键,更是企业竞争力的象征。本文将带领读者穿越自动化运维的发展历程,从最初的脚本编写到现代DevOps文化的形成,揭示这一演变如何重塑IT行业的工作模式。通过具体案例,我们将展示自动化工具和实践如何简化复杂任务,优化流程,并促进团队协作。你将发现,自动化运维不仅关乎技术的进步,更体现了人、流程和技术三者之间协同增效的深层逻辑。
|
24天前
|
监控 数据挖掘 数据安全/隐私保护
Python脚本:自动化下载视频的日志记录
Python脚本:自动化下载视频的日志记录
|
27天前
|
机器学习/深度学习 人工智能 运维
自动化运维之路:从脚本到工具的演进
在IT运维领域,效率和准确性是衡量工作成效的关键指标。随着技术的发展,自动化运维逐渐成为提升这两个指标的重要手段。本文将带领读者了解自动化运维的演变历程,从最初的简单脚本编写到现今复杂的自动化工具应用,展示如何通过技术提升运维效率。文章不仅介绍理论和实践案例,还提供了代码示例,帮助读者理解自动化运维的实际应用场景。
|
29天前
|
运维 监控 网络安全
自动化运维的崛起:如何利用Python脚本简化日常任务
【10月更文挑战第43天】在数字化时代的浪潮中,运维工作已从繁琐的手工操作转变为高效的自动化流程。本文将引导您了解如何运用Python编写脚本,以实现日常运维任务的自动化,从而提升工作效率和准确性。我们将通过一个实际案例,展示如何使用Python来自动部署应用、监控服务器状态并生成报告。文章不仅适合运维新手入门,也能为有经验的运维工程师提供新的视角和灵感。
|
1月前
|
存储 Python
Python自动化脚本编写指南
【10月更文挑战第38天】本文旨在为初学者提供一条清晰的路径,通过Python实现日常任务的自动化。我们将从基础语法讲起,逐步引导读者理解如何将代码块组合成有效脚本,并探讨常见错误及调试技巧。文章不仅涉及理论知识,还包括实际案例分析,帮助读者快速入门并提升编程能力。
65 2
|
1月前
|
运维 监控 Python
自动化运维:使用Python脚本简化日常任务
【10月更文挑战第36天】在数字化时代,运维工作的效率和准确性成为企业竞争力的关键。本文将介绍如何通过编写Python脚本来自动化日常的运维任务,不仅提高工作效率,还能降低人为错误的风险。从基础的文件操作到进阶的网络管理,我们将一步步展示Python在自动化运维中的应用,并分享实用的代码示例,帮助读者快速掌握自动化运维的核心技能。
82 3
下一篇
DataWorks