gpt4 book ai didi

mysql - 使用 shell 脚本删除多个 mysql 数据库

转载 作者:行者123 更新时间:2023-11-30 00:34:52 26 4
gpt4 key购买 nike

我正在将一个包含所有数据库的大型 SQL 文件从服务器 A 迁移到服务器 B。在导入该文件之前,我需要删除将在服务器 B 上导入时重新创建的所有数据库。

如何使用 shell 脚本以编程方式删除多个 mySQL 数据库,同时保留特定数据库,例如 information_schema .

最佳答案

以下内容选择您的 mySQL 用户可用的所有数据库。然后,它使用 grep 过滤出您想要保留的数据库。

DBUSER='user'
DBPASS='password'
SQLFILE='/path/to/file/databases.sql'

echo '* Dropping ALL databases'

DBS="$(mysql -u$DBUSER -p$DBPASS -Bse 'show databases' |
grep -v -e '[dD]atabase' -e mysql -e information_schema -e test)"

for db in $DBS; do
echo "Deleting $db"
mysql -u$DBUSER -p$DBPASS -Bse "drop database $db; select sleep(0.1);"
done

有一些部分答案,但我希望这会节省一些人的时间。

提示:您可以使用 $ echo $DBS 进行测试,以查看在键入第一个命令后将选择删除哪些数据库。 DBS="$(mysql -u$DBUSER -p$DBPASS -Bse '显示数据库' | grep -v DatabaseToFilter)"

关于mysql - 使用 shell 脚本删除多个 mysql 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22261085/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com