我正在将一个包含所有数据库的大型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 'show databases' | grep -v DatabaseToFilter)"
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句