我们的MySQL中有很多数据库,我们想缩小/清除MySQL中的ibdata1文件.
我们如何从MySQL information_schema和mysqld
数据库中删除所有数据库?
Suk*_*ngh 19
以下命令将删除除mysql,information_schema和performance_schema dbs之外的mysql dbms中的所有数据库.
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>
Run Code Online (Sandbox Code Playgroud)
感谢Mohinish的博客文章
Fab*_*cke 12
您可以直接使用 MySQL 构建一系列 DROP DATABASE 查询:
-- Prevent truncation
SET SESSION group_concat_max_len = 1000000;
SELECT GROUP_CONCAT(
DISTINCT CONCAT('DROP DATABASE ', table_schema, ';')
SEPARATOR ''
)
FROM information_schema.tables
WHERE table_schema NOT IN ('mysql', 'information_schema');
Run Code Online (Sandbox Code Playgroud)
然后执行生成的字符串。
该解决方案的优点是不需要连接到为 MySQL 数据库提供服务的主机。