我有一个配置了innoDB存储引擎的mysql数据库。
我删除了数据库(drop database <dbname>
)
但磁盘空间尚未解放。
在/var/lib/mysql
,有一些名为ib_logfile0
,ib_logfile1
和ibdata1
的“大”文件,其中最后一个文件非常大。我认为这些文件实际上是原始数据库。
我怎么知道我是否可以删除它们。或者更好的问题是如何放弃 数据库,以便回收磁盘空间。
澄清
我想删除整个数据库并释放磁盘空间。
我不想执行任何恢复。
提前致谢。
答案 0 :(得分:8)
不幸的是,一旦分配了空间,就无法收缩这些文件。但是,当添加新数据时,MySQL将重新使用该空间,但该文件不会缩小。
要缩小大小,您需要转储数据库,然后重新恢复它们。
您还可以执行以下操作:
在配置文件中设置innodb_file_per_table,这将为每个表创建一个单独的文件。这将允许您在删除数据库后删除这些文件,并允许您在收缩特定表中的数据时使用OPTIMIZE TABLE命令重建ibd文件。
答案 1 :(得分:0)
一种解决方案是转储然后恢复。