我们有我们的MySQL数据库多,我们希望shrink/purge ibdata1 file in MySQL。
我们怎样才能删除所有从MySQL除了information_schema
和mysqld
数据库的数据库?
以下命令会删除在MySQL DBMS所有数据库除的MySQL,INFORMATION_SCHEMA和performance_schema DBS。
mysql -uroot -p<password> -e "show databases" | grep -v Database | grep -v mysql| grep -v information_schema| gawk '{print "drop database `" $1 "`;select sleep(0.1);"}' | mysql -uroot -p<password>
由于Mohinish的博客post
如果您有跨数据库外键,或数据库名称中使用MySQL的保留字,如“订单”,Sukhjinder辛格回答的这种变化会工作。
mysql -u<user> -p<password> -e "show databases" | grep -v Database | grep -v mysql | grep -v information_schema | gawk '{print "SET FOREIGN_KEY_CHECKS = 0;drop database
“$ 1” ;select sleep(0.1);"}' | mysql -u<user> -p<password>
按照此link - 它演示了如何做到这一点!
所使用的凭证是:
mysql -uroot -p -e "show databases" | grep -v Database |
grep -v mysql| grep -v information_schema| grep -v test |
grep -v OLD |gawk '{print "drop database " $1 ";select sleep(0.1);"}' |
mysql -uroot -ppassword