A quick script to do so:
<?php
mysql_connect('localhost','root','YOURPASSWORD');
$alldbs=mysql_query("SHOW DATABASES");
while ($dbs = mysql_fetch_assoc($alldbs)) {
foreach($dbs as $db_name){
if($db_name=='information_schema' || $db_name=='mysql')continue;
mysql_select_db($db_name);
echo '<strong>database: '.$db_name.'</strong><br />';
$alltables = mysql_query("SHOW TABLES");
while ($table = mysql_fetch_assoc($alltables)) {
foreach ($table as $db => $tablename) {
echo 'optimising '.$tablename.'<br />';
mysql_query("OPTIMIZE TABLE `".$tablename."`") or die(mysql_error());
}
}
}
}
Based on this original script for optimising all tables in a specific database.

[...] Optimise all tables in all mysql dbs on your server [...]