干掉一堆mysql数据库,仅需这样一个shell脚本(推荐)

yizhihongxing

这样一个shell脚本是指一个名为mysql_dropper.sh的脚本,它可以批量删除MySQL数据库。下面是详细的攻略:

下载和安装必要的工具

首先需要安装mysql命令行客户端和expect工具。在Linux下,可以通过以下命令安装:

sudo apt-get update
sudo apt-get install mysql-client expect

如果是在Mac下,则需要使用brew安装:

brew update
brew install mysql-client expect

编写脚本

接下来,我们需要编写一个名为mysql_dropper.sh的脚本。脚本内容如下:

#!/usr/bin/expect
set timeout -1
set user [lindex $argv 0]
set password [lindex $argv 1]
set dbname [lindex $argv 2]
spawn mysql -u $user -p$password -e "DROP DATABASE $dbname;"
expect "Enter password:"
send "$password\r"

执行脚本

将以上脚本保存为mysql_dropper.sh文件,并给予可执行权限:

chmod +x mysql_dropper.sh

接着,在命令行中执行:

./mysql_dropper.sh <mysql用户名> <mysql密码> <要删除的数据库名称>

例如,删除名为test_db的数据库:

./mysql_dropper.sh root Password123 test_db

示例

以下是两个示例说明:

示例1:删除多个数据库

假设有三个数据库:db1db2db3,它们的用户名和密码分别为db_userdb_password。我们可以使用以下命令一次性删除所有的数据库:

./mysql_dropper.sh db_user db_password db1
./mysql_dropper.sh db_user db_password db2
./mysql_dropper.sh db_user db_password db3

示例2:批量删除数据库

假设我们有一个名为db_list.txt的文本文件,里面记录了一些要删除的数据库,每行一个。我们可以使用以下命令批量删除所有数据库:

while read -r line; do
  ./mysql_dropper.sh db_user db_password "$line"
done < db_list.txt

注意,以上命令会逐行读取db_list.txt文件中的内容,并逐个删除数据库。如果db_list.txt文件中有很多数据库需要删除,这个命令可能会执行很长时间。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:干掉一堆mysql数据库,仅需这样一个shell脚本(推荐) - Python技术站

(0)
上一篇 2023年5月18日
下一篇 2023年5月18日

相关文章

  • MySQL — 单行函数

      大小写控制函数 SELECT LOWER(‘HelloWrold’), UPPER(‘HelloWorld’);   字符控制函数 SELECT REPLACE(‘abcdababab’,’p’,’m’); 将“abcdababab”中的字符p替换成m;   SELECT TRIM(‘ ‘ FROM ‘ HHHHHello.HHHWorldHHHHH ‘…

    MySQL 2023年4月13日
    00
  • MYSQL之on和where的区别是什么

    这篇“MYSQL之on和where的区别是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“MYSQL之on和where的区别是什么”文章吧。 on和where的区别 多表查询语法结构: table_reference {[INNER] JOI…

    MySQL 2023年4月10日
    00
  • MySql自动分区

    自动分区需要开启MySql中的事件调度器,可以通过如下命令查看是否开启了调度器 show variables like ‘%scheduler%’; 如果没开启的话通过如下指令开启 SET GLOBAL event_scheduler = 1;   1、创建一个分区表 CREATE TABLE sales ( id INT AUTO_INCREMENT, a…

    MySQL 2023年4月13日
    00
  • mySQL之关键字的执行优先级讲解

    MySQL之关键字的执行优先级讲解 MySQL中有大量的关键字,这些关键字在语句执行时都有各自的优先级。正确理解这些优先级能够帮助我们写出更高效、正确的SQL语句。 1.执行优先级 MySQL中关键字的执行优先级,从高到低依次为: 括号 乘除法 加减法 比较运算符 逻辑运算符 比较运算符和逻辑运算符中,优先级相同的运算符从左到右依次执行。 2.示例说明 示例…

    MySQL 2023年5月19日
    00
  • centos 6.5下 mysql-community-server. 5.7.18-1.el6安装

    下面是“CentOS 6.5下MySQL-Community-Server 5.7.18-1.el6安装”的完整攻略。 1. 安装依赖环境 在安装MySQL-Community-Server之前,需要安装一些必要的依赖库文件,可以使用以下命令进行安装: yum install -y wget yum install -y perl-Data-Dumper y…

    MySQL 2023年5月18日
    00
  • MySQL 数据类型(float)的注意事项

    摘要:      今天左哥问起一个float浮点数类型的问题,这个类型用的不多,所以也不太了解,现在打算测试下。 知识点:      float:浮点数,单精度,占4字节。 测试 root@localhost : test 05:49:32>create table fl(id int,fl float); Query OK, 0 rows affec…

    MySQL 2023年4月13日
    00
  • 一文教你学会定位线上MySQL锁超时问题

    以下是“一文教你学会定位线上MySQL锁超时问题”的完整攻略。 问题背景 在MySQL中,为了保证并发性,当某个事务要修改数据时,会自动为要修改的行加上锁,防止其他事务同时访问,这种锁就叫做行锁。而当一些事务互相等待对方释放锁时,就会产生死锁,这时MySQL会自动检测到死锁,并选择其中一个事务进行回滚以解锁。 然而,在极端情况下,如果某个事务一直无法获得所需…

    MySQL 2023年5月18日
    00
  • MySQL之数据表的插入内容 空与非空(六)

    NULL与NOT NULL mysql> CREATE TABLE tb2( -> usename VARCHAR(20) NOT NULL, -> age TINYINT UNSIGNED NULL(可以为空) -> );Query OK, 0 rows affected (0.06 sec) mysql> SHOW COLU…

    MySQL 2023年4月16日
    00
合作推广
合作推广
分享本页
返回顶部