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

本文涉及的产品
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS AI 助手,专业版
简介: 安装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;
相关实践学习
自建数据库迁移到云数据库
本场景将引导您将网站的自建数据库平滑迁移至云数据库RDS。通过使用RDS,您可以获得稳定、可靠和安全的企业级数据库服务,可以更加专注于发展核心业务,无需过多担心数据库的管理和维护。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
10月前
|
SQL 人工智能 关系型数据库
GitHub 热门!MindsDB 破解 AI + 数据库瓶颈,究竟有什么惊艳亮点?只需 SQL 即可实现智能预测
MindsDB 是一款将 AI 能力直接注入数据库的开源工具,支持 MySQL、PostgreSQL 等多种数据库连接,通过 SQL 即可完成模型训练与预测。它提供 AutoML 引擎、LLM 集成、联邦查询等功能,简化 MLOps 流程,实现数据到智能的无缝衔接。项目在 GitHub 上已获 32.4k 星,社区活跃,适用于客户流失预警、推荐系统、情感分析等场景。开发者无需深入模型细节,即可快速构建智能解决方案。项目地址:https://github.com/mindsdb/mindsdb。
1427 0
|
关系型数据库 Shell 网络安全
定期备份数据库:基于 Shell 脚本的自动化方案
本篇文章分享一个简单的 Shell 脚本,用于定期备份 MySQL 数据库,并自动将备份传输到远程服务器,帮助防止数据丢失。
|
关系型数据库 MySQL 应用服务中间件
tomcat 搭建博客 及破解数据库密码
tomcat 搭建博客 及破解数据库密码
|
运维 监控 关系型数据库
数据库管理中的自动化运维:挑战与解决方案
数据库管理中的自动化运维:挑战与解决方案
|
存储 运维 监控
自动化运维:使用Shell脚本简化日常任务
【9月更文挑战第35天】在IT运维的日常工作中,重复性的任务往往消耗大量的时间。本文将介绍如何通过编写简单的Shell脚本来自动化这些日常任务,从而提升效率。我们将一起探索Shell脚本的基础语法,并通过实际案例展示如何应用这些知识来创建有用的自动化工具。无论你是新手还是有一定经验的运维人员,这篇文章都会为你提供新的视角和技巧,让你的工作更加轻松。
417 2
|
SQL 关系型数据库 数据库连接
"Nacos 2.1.0版本数据库配置写入难题破解攻略:一步步教你排查连接、权限和配置问题,重启服务轻松解决!"
【10月更文挑战第23天】在使用Nacos 2.1.0版本时,可能会遇到无法将配置信息写入数据库的问题。本文将引导你逐步解决这一问题,包括检查数据库连接、用户权限、Nacos配置文件,并提供示例代码和详细步骤。通过这些方法,你可以有效解决配置写入失败的问题。
900 0
|
Shell Linux
Linux Shell 脚本入门教程:开启你的自动化之旅
Shell是一种计算机程序,它充当了用户与操作系统之间的接口。在Linux系统中,Shell允许用户通过命令行界面(CLI)来控制计算机。Shell脚本则是一种使用Shell语言编写的脚本,它可以自动执行一系列的命令,帮助用户实现任务自动化,提高工作效率。
379 2
|
运维 监控 Shell
自动化运维之宝:编写高效的Shell脚本
【8月更文挑战第31天】在运维的世界里,Shell脚本是一把瑞士军刀,它让日常任务变得简单而高效。本文将通过浅显易懂的语言和实际案例,带你领略Shell脚本的魅力,并教你如何打造属于自己的自动化工具箱。无论你是初学者还是资深运维,这篇文章都将为你打开一扇窗,让你看到不一样的风景。让我们一起探索Shell脚本的世界吧!
|
Shell UED Python
Shell 循环语句:重复任务的自动化利器
在Shell脚本中,循环语句如`while`和`for`是自动化任务的关键。`while`循环在条件满足时执行,例如计算1到100的和;`for-in`循环遍历列表,可用于迭代指定数值或命令输出,如求1到100的和。`select-in`循环提供交互式菜单,增强脚本用户体验。理解并运用这些循环能提升脚本效率和可读性。现在,动手试试吧!
220 2
|
SQL 安全 关系型数据库
【惊天秘密】破解数据库管理难题!——Yearning开源审计平台:你的数据库安全守护神,一键审计,轻松应对挑战!
【8月更文挑战第21天】Yearning是一款基于Python的开源数据库审计平台,简化数据库管理和审计流程,支持MySQL、PostgreSQL等。核心功能包括SQL审计、执行、回滚及备份,提升数据库管理效率。安装简便,支持通过pip安装并快速启动服务。Yearning提供智能SQL审查,确保安全性与合规性,同时还具备友好的用户界面及API客户端支持,适用于多种数据库操作场景。
1132 0

推荐镜像

更多