La consulta:
 
SHOW TABLE STATUS 
Te muestra información sobre las tablas de una base de datos. Entre los campos que te muestra, hay uno que es 'Data_length', bueno, pues eso es lo que ocupan los datos de cada tabla. 
Lo que ocurre es que además de los datos, también puede representar bastante espacio lo asignado para cada índice. Y esto lo indica en el campo 'Index_length' 
Para obtener el valor total de la base de datos, se me ocurre emplear, por ejemplo, PHP para recuperar todos los valores y sumarlos posteriormente. 
Sería algo como: 
 Código PHP:
    mysql_connect(Datos de conexion) or die(mysql_error());
mysql_select_db("base_de_datos") or die(mysql_error());
 
$sql = "SHOW TABLE STATUS";
$resultado = mysql_query($sql) or die(mysql_error());
 
$total = 0;
while ($tabla = mysql_fetch_assoc($resultado))
 $total += ($tabla['Data_length']+$tabla['Index_length']);
 
echo $total; 
    
  Es decir, en la variable $total tenemos cuanto ocupa la base de datos "base_de_datos" (en bytes). 
Si queremos mostrar ese valor en KB, es muy sencillo... 
 Código PHP:
    $total_temp = $total / 1024;
$total_kb = number_format($total_temp, 0, ",", ".")+1;
 
// despues...
echo $total_kb; 
    
  1 Saludo.