phpMyAdmin is a great tool but there is no option to repair all databases at once yet. Imagine you have no shell-access and need to repair all your 100 databases. It would take long time. This small PHP-Script lets you list, analyze and repair all your databases belong to same user at once.
If you already have shell access you can do it with mysqlcheck:
mysqlcheck -u root -p --auto-repair --check --optimize --all-databases
Repair with PHP:
/**
* powered by @cafewebmaster.com
* free for private use
* please support us with donations
*/
$db_host = $_POST['db_host'];
$db_user = $_POST['db_user'];
$db_password = $_POST['db_password'];
$do_analyze = $_POST['do_analyze'];
$do_repair = $_POST['do_repair'];
$db_ignore = ($_POST['db_ignore']) ? $_POST['db_ignore'] : "nodbignore" ;
if(!$db_host || !$db_user){ die(); }
mysql_connect("$db_host","$db_user","$db_password") or die("Error: No BD Connection");
$rs = mysql_query("show databases");
while($arr=mysql_fetch_array($rs)){
echo "
$arr[0]
- ";
- $arr2[0] $arr3[3] $arr4[3]";
}
echo "
mysql_select_db("$arr[0]");
$rs2 = mysql_query("show tables");
while($arr2=mysql_fetch_array($rs2)){
if($do_analyze){
$rs3 = mysql_query("analyze table `$arr2[0]`"); echo mysql_error();
$arr3=mysql_fetch_array($rs3);
}
if($do_repair){
$rs4 = mysql_query("repair table `$arr2[0]`"); echo mysql_error();
$arr4=mysql_fetch_array($rs4);
}
echo "
";
}
- Log in to post comments