Aquí están los scripts mysql que había ofrecido:
mysql_repair:
Código:
### MySQL Setup ###
MUSER="root"
MPASS="xxxxxx" # coloca aqui el password de root mysql
MHOST="localhost"
# No need to change below this, unless your mysql_repair_db.sh script isn't on /root/mysql_repair_db.sh
MYSQL="$(which mysql)"
DBS="$($MYSQL -u $MUSER -h $MHOST -p$MPASS -Bse 'show databases')"
for db in $DBS
do
if [ "$db" != "information_schema" ]; then
RES="$(/root/mysql_repair_db.sh --optimize --credentials "-u${MUSER} -p${MPASS}" $db)"
#echo $RES >> /root/log_mysql_optimize
RES="$(/root/mysql_repair_db.sh --repair --credentials "-u${MUSER} -p${MPASS}" $db)"
#echo $RES >> /root/log_mysql_repair
fi
done
mysql_repair_db.sh:
Código:
#!/bin/sh
# this shell script finds all the tables for a database and run a command against it
# @usage "mysql_tables.sh --optimize MyDatabaseABC"
# @bug fixed by WebLive Help at July 1st 2008
# @author Son Nguyen from http://www.fagioli.biz/?q=mysql-database-optimize-and-repair-bash-script
#AUTH='-uweb -pwebphp'
AUTH='-uadmin -pqLtwUCRKL8'
AUTH=$3
DBNAME=$4
printUsage() {
echo "Usage: $0"
echo " --optimize --credentials '-uUSERNAME -pPASSWORD' "
echo " --repair "
return
}
doAllTables() {
# get the table names
TABLENAMES=`mysql $AUTH -D $DBNAME -e "SHOW TABLES\G;"|grep 'Tables_in_'|sed -n 's/.*Tables_in_.*: \([_0-9A-Za-z]*\).*/\1/p'`
# loop through the tables and optimize them
for TABLENAME in $TABLENAMES
do
mysql $AUTH -D $DBNAME -e "$DBCMD TABLE \`$TABLENAME\`;"
#mysql $AUTH -D $DBNAME -e ALTER TABLE $TABLENAME ENGINE = MYISAM;
done
}
if [ $# -lt 3 ] ; then
printUsage
exit 1
fi
case $1 in
--optimize) DBCMD=OPTIMIZE; doAllTables;;
--repair) DBCMD=REPAIR; doAllTables;;
--help) printUsage; exit 1;;
*) printUsage; exit 1;;
esac
Instrucciones:
Son dos scripts el primero es mysql_repair el otro es mysql_repair_db.sh uno llama al otro para reparar y optimizar todas las bases de datos de un servidor MySQL
Copia ambos scripts en la carpeta /root
chmod 700 mysql_repair mysql_repair.sh
Modifica mysql_repair y coloca el password de root mysql en MPASS
para ejecutar: /root/mysql_repair
Ninguno de los dos son de mi autoría, pero ambos de libre distribución.
Es fácil modificarlos a tus preferencias o necesidades
Yo los corro una vez por semana en una tarea cron