4 scripts para el trabajo sucio con mysql

Tras varias ocasiones en que he ofrecido a algún colega uno de estos scripts me he decidido a juntarlos todos en el mismo sitio y compartirlos formalmente. Se trata de un puñado de scripts que en el pasado implementé según me hicieron falta para resolver o cubrir alguna necesidad.

Vaya por delante que no me considero experto en mysql (no he llegado a ninguna meta, al contrario, prefiero expresiones de evolución: tengo experiencia con mysql). Estos scripts no son nada del otro mundo, simplemente en su momento no encontré una aplicación/script que hiciera lo que necesitaba y tuve que programarlo.

Como buenos scripts que forman parte de la caja de herramientas de cada cual, son implementaciones ad hoc para cubrir una necesidad (normalmente urgente). Tiendo a implementar cosas de manera genérica pero en el campo de batalla las cosas salen como salen así que no se esperen unos scripts limpios listos para usar con los ojos cerrados. Sirva esto de disclaimer, de this software is provided as is o de at your own risk, como se prefiera.

Los scripts están escritos en python y leen credenciales de ~/.my.cnf. No he hecho el esfuerzo final de dejarlos pulidos para su uso out-of-the-box, quizás lo haga en un rato libre, o cuando vuelva a necesitar usarlos. Algunos de ellos son interactivos y en otros es necesario editar el fichero para establecer ciertos parámetros. Sin más, ahí van:

Charset Fix
Busca y reemplaza caracteres raros en todos los campos de todas las tablas de una base de datos. Fuerza bruta de último recurso útil en el caso de que el charset se haya hecho un lío tras una migración o actualización. Este script lo necesité para desenredar tras actualizar varios sitios a drupal 6 (esta versión de drupal empezó a forzar el uso de UTF8).
Collation Fix
Cambia el collation de todos los campos de todas las tablas de una base de datos. Útil en el caso de que se creara la base de datos sin prestar atención al collation y acabase hecha un lío.
Massive search
Busca una cadena de texto en todos los campos de todas las tablas de una base de datos. Es la misma funcionalidad de búsqueda global que proporciona phpmyadmin.
Mysql cleanup
Recorre todas las tablas de todas las bases de datos y las optimiza (borra residuos). Adicionalmente puede hacer check-and-repair y notificar de todas las tablas que sobrepasan un umbral de tamaño.