首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从服务器删除所有数据库

从服务器删除所有数据库
EN

Stack Overflow用户
提问于 2011-04-25 18:31:02
回答 9查看 64.7K关注 0票数 45

我有一台拥有300多个数据库的服务器(SQL Server2005)。我不想逐个右键单击并选择Delete

如何轻松删除所有数据库?

EN

Stack Overflow用户

发布于 2015-12-09 23:50:00

我的数据库出现了一个问题,上面的解决方案都不起作用。

我只是想删除我所有的数据库,但我有一个问题,他们的名字。实际上,我有这样命名的数据库:

代码语言:javascript
运行
复制
093e83d-somename;
39s2ak3-anothername;

删除这些数据库(在MariaDB上测试)的更简单方法是执行以下命令:

代码语言:javascript
运行
复制
DROP DATABASE `093e83d-somename`;

当我们直接想要从bash文件执行SQL命令时,这种名称似乎是一个问题,因为我们必须在反引号()之间指定数据库的名称。

如果您有相同的问题,并且您有很多数据库,那么您只需创建一个包含所有所需命令的批处理脚本,然后在您的SQL服务器中执行此脚本。

test.sh示例:

代码语言:javascript
运行
复制
#!/bin/bash

# Informations needed
MUSER="root"
MPASS="pass"

# We get the needed binaries
MYSQL=$(which mysql)
AWK=$(which awk)
GREP=$(which grep)

# We get all the DB names in DB
DB=$($MYSQL -u $MUSER -p$MPASS -e 'show databases' | $AWK '{ print $1}' | $GREP -v '^Databases' )

# For each database, we write the drop command in the file test.sql
for t in $DB
do
    echo -e "DROP DATABASE \`$t\`;" >> test.sql
done

# We execute the created SQL file with all the DROP commands
$MYSQL -u $MUSER -p$MPASS -e 'source test.sql;'

# We finally delete the created file.
rm test.sql

我认为这个脚本在所有情况下都是有效的。希望这能帮上忙。

票数 1
EN
查看全部 9 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5777483

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档