Reclaiming mysql empty space... nothing works
Down to 4% disk space?  This will be tricky.
Find the largest files on the system; sort by size; see if any other files (logs, other apps, etc) can be freed up.

Find out how big ibdata1 is.
Run SHOW TABLE STATUS.  (Show me this, so I can explain what the rest of the steps mean.)
Figure out whether some tables are &quot;file-per-table&quot; and some are in ibdata1.
Figure out how much free space is in ibdata1.  Let'c call this x.
For each table that is not in ibdata1, but is small enough (data_free+index_free) to fit into x, move it into ibdata1 -- but start with the one with the largest Data_free.  Do not bother will tables with free space below 8MB.  (This involves a SET and an ALTER.)
For each of the rest of the tables with more than 8MB free and not currently in ibdata1, rebuild (ALTER).  Start with the smallest and work your way up, until their is not enough free disk to do the next table.

If that won't suffice then:  Get a bigger machine, dump and reload.
For the future:  You should worry about disk space when 50% full (not 96%).