Entradas

Mostrando las entradas etiquetadas como MySQL

Recodificar claves MD5

Semanas atrás estaba trabajando en la migración de casillas de correo a un servidor nuevo basado en ZIMBRA .  Se quiere que los usuarios autentiquen en el nuevo sistema con sus passwords actuales. Las passwords actuales están encriptadas con el algoritmo MD5 , almacenadas en una base de datos MySQL . En Zimbra se utiliza " autenticación interna ", las claves se almacenan en OpenLDAP (atributo userpassword ). Zimbra encripta las passwords con el  algoritmo SSHA, pero admite passwords con otros algoritmos. Queriendo migrar las password de un sistema a otro, nos encontramos que era necesario recodificar las passwords almacenadas en la base datos, para que pudieran ser utilizadas con exito. OpenLDAP almacena las passwords en un formato binario, codificado en base64 . Aquí se discute esto , con ejemplos en PHP. Y en este mensaje de una lista de OpenLDAP encontramos la razón de nuestro problema y un script de conversión.Copio acá el script : #---------------------------...

Respaldos MOODLE

He estado trabajando en la actualización de un servidor Moodle muy viejo, versión 1.9.4. Para llevar este servidor a la ultima versión estable, es necesario hacer una serie de actualizaciones pasando por varias de las versiones intermedias. Se aconseja realizar respaldos totales, previo a cada actualizaciones. Es deseable que en el respaldo esté el directorio de datos ( MOODLEDATA ), la base de datos y el directorio que contiene los ejecutables. Para este trabajo hice un script que dejo acá: #!/bin/sh # Respaldo Total de Moodle MYSQLDUMP=$(which mysqldump) TAR=$(which tar) # Directorio Instalación de Moodle MOODLE_DIR= "/var/www//moodle" # Directorio de Datos de Moodle MOODLE_DATA_DIR= "/var/moodledata" APACHE_CONF_DIR= "/etc/apache2" PHP_CONF_DIR= "/etc/php5" MYSQL_USER= "mysql_administrator" MYSQL_PASSWORD= "Muy.Secreta" MYSQL_DB= "moodle_db" SERIAL=$(date +%Y%m%d-%H%M) BKP_DIR= "/home/RESPALDO"...

Otra solucion para problemas de Collation en Moodle con MySQL

Hace algunos meses comentaba sobre algunos problemas que tuve con el collation de MySQL en un upgrade de Moodle . En otra actualizacion, revisando las herramientas CLI me encontré con este script:  mysql_collation.php Aparentemente el problema era frecuente, la gente de Moodle creo una herramienta.

Una actualizacion de Moodle que se complicó

Imagen
Unos meses atrás, encaré actualizar un servidor Moodle 1.9 con MySQL 5.1 a la versión 2.0. Seguí el procedimiento que postee en el blog . Terminé la instalación procedi a configurar Moodle. Encuentro con un error de base de datos: El mensaje de error hacia referencia al collation de dos tablas. Desde la consola, corrí un show table status . Había tablas con distintos collation. Decidí convertir las tablas a UTF-8 , con collate utf8_unicode_ci. Utilice el siguiente alter table : ALTER TABLE database.table CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci ;   Como tenia que cambiar mas de 250 tablas, generé un script ad-hoc , partiendo de la salida del show tables , generando las sentencias SQL con AWK. Yo elegí como charset UTF-8, pero la receta aplica para cualquier combinación razonable de charset y collate.

Employees: Una base de datos de prueba para MySQL

Un problema frecuente: queremos probar un motor de base de datos. Seria bueno contar con una base de datos con varias tablas y un conjunto de tuplas de tamaño razonable, ni muy grande ni muy pequeño. Por una entrevista de trabajo, conocí la existencia de la base de datos Employees. Patrick Crews y Giuseppe Maxia, obtuvieron el conjunto de datos original y lo convirtieron en un paquete pronto para ser cargado en MySQL. Simplemente bajamos el paquete desde Launchpad , lo cargamos en nuestro servidor y esta pronto para utilizarlo. En la documentación tenemos un conjunto de consultas para validar los datos . El set de datos original fue creado por Fusheng Wang y Carlo Zaniolo, de Siemens Corporate Research. Los datos estan en XML, y pueden descargarse de aqui: employeeTemporalDataSet . El README se explaya en  el contenido del archivo.