sep 10 2007

Una única base de datos para controlarlos a todos

Published by at 10:50 pm under Administración DL,MySQL

Dentro de poco pondré otra herramienta online disponible para todos los usuarios Linuxeros de este portal que creo os va a gustar (algunos de vosotros ya lo habéis probado como beta-testers). El caso es que necesitaba unificar las bases de datos (en concreto las tablas referidas a usuarios) de diariolinux.com con la de esa otra herramienta (que también se ejecuta sobre WordPress como base) para conseguir que no hubiera que registrarse en ambos sitios para poder participar en una u otra web. Y buscando en el oráculo no encontré nada. Así que me lié la manta a la cabeza e ideé un método que igual le puede servir a alguien más. La idea es que, aprovechando que ambos sistemas guardan sus datos en una base de datos MySQL, y sabiendo que esta BBDD guarda internamente sus tablas sobre ficheros con extensiones MYD, MYI, y frm, probé a borrar los ficheros de las tablas de usuarios de la nueva herramienta y crear enlaces a los mismos ficheros ya existentes de diariolinux.com.

En Fedora, esos ficheros se guardan en /var/lib/mysql/ . Ahí tendremos un directorio por cada BBDD. Por ejemplo, tengo un directorio: /var/lib/mysql/diariolinux y otro /var/lib/mysql/nueva_herramienta .

En concreto, las tablas de gestión de usuarios de WordPress que primero borré (en herramienta) y luego enlacé (para que apuntaran a las de DiarioLinux) son: wp_usermeta.MYD, wp_usermeta.MYI, wp_usermeta.frm, wp_users.MYD, wp_users.MYI y wp_users.frm.
El caso es que funcionó :-) Ahora, sólo queda (si es posible) conseguir el SingleSignOn, es decir, que un usuario pueda identificarse o bien en diariolinux.com o bien en la web de la herramienta y que esa identificación valga para ambos dominios. Eso, creo, será más difícil que unificar logins/passwords.

7 responses so far

7 Responses to “Una única base de datos para controlarlos a todos”

  1. Sepulon 11 sep 2007 at 6:34 am

    En teoría podría funcionar con cualquier otro cms, foro o lo sea que no fuese wp, verdad?

    Parece muy interesante. Y si ya se soluciona lo de los accesos o modificaciones de datos concurrentes en más de una web con la misma db para usuarios sería de muuuuuuuuuuucha utilidad.

  2. xabion 11 sep 2007 at 7:18 am

    Has puesto mal el link del oráculo ;-)

  3. Julenon 11 sep 2007 at 7:32 am

    Una pregunta: se basa en OpenID?

  4. adminon 11 sep 2007 at 8:00 am

    xabi: arreglado, thanks.
    Sepul: no creo que haya problemas de concurrencia para este caso concreto (un mismo usuario debería de cambiar sus datos exactamente a la vez desde dos sitios distintos, cosa alto improbable)
    Julen: OpenID es un sistema que me gustaría probar, pero para conseguir el SingleSignOn tal vez pruebe phpCAS (http://www.ja-sig.org/wiki/display/CASC/phpCAS)

  5. Luciano A. Ferreron 12 sep 2007 at 3:38 pm

    O sea, en pocas palabras, en tu herramienta usás la tabla de usuarios de diariolinux mediante enlaces simbólicos a los archivos…

  6. adminon 12 sep 2007 at 4:11 pm

    Luciano: exacto

  7. Pixoteon 13 sep 2007 at 7:41 am

    Hola,
    quizás con este “apaño” puedes poner en riesgo la consistencia de datos de la tabla enlazada, o no disponer de ellos por posibles bloqueos.
    En Mysql existen las tablas FEDERATED (a partir de 5.0.3), es similar a los dblink de Oracle.
    http://dev.mysql.com/doc/refman/5.0/en/federated-storage-engine.html
    Quizás te sea mejor solución. Si lo pones en práctica comentame el resultado

    Un saludo

Trackback URI | Comments RSS

Leave a Reply

« Back to text comment