Commit 28c819b4 authored by marknl's avatar marknl
Browse files

Added mysql table check/repair for ISPConfig database while running (auto)update.

http://bugtracker.ispconfig.org/index.php?do=details&task_id=1360
parent 65b81ba8
......@@ -144,6 +144,11 @@ if( empty($conf["mysql"]["admin_password"]) ) {
die("internal error - MYSQL-Root passord not known");
}
/*
* Check all tables
*/
checkDbHealth();
/*
* Prepare the dump of the database
*/
......
......@@ -79,6 +79,32 @@ function prepareDBDump() {
}
}
function checkDbHealth() {
global $conf;
//* Array containing non OK tables (can be repaired, crashed, corrupt)
$notok = array();
echo "Checking ISPConfig database .. ";
exec("mysqlcheck -h '".$conf['mysql']['host']."' -u '".$conf['mysql']['admin_user']."' -p'".$conf['mysql']['admin_password']."' -r ".$conf["mysql"]["database"], $result);
for( $i=0; $i<sizeof($result);$i++) {
if ( substr($result[$i], -2) != "OK" ) {
$notok[] = $result[$i];
}
}
if ( sizeof($notok) > 0 ) {
echo "\nSome tables where not 'OK'. Please check the list below.\n\n";
foreach ($notok as $key => $value) {
echo "$value\n";
}
echo "\nPress enter to continue or CTRL-C to cancel the installation ..";
sread();
}
else
echo "OK\n";
}
function updateDbAndIni() {
global $inst, $conf;
......
......@@ -187,6 +187,10 @@ if($conf['mysql']['master_slave_setup'] == 'y') {
$inst->dbmaster = $inst->db;
}
/*
* Check all tables
*/
checkDbHealth();
/*
* dump the new Database and reconfigure the server.ini
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment