Primero... conectar a MySQL simple y llanamente Estaba yo (re)configurando las definiciones de VirtualHosts para los proyectos alojados en trinity y que gestiono con tkmanager y resulta que intentaba acceder a la consola de la base de datos, con el típico mysql -u root -p. Pues no quería él. El error: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) Resulta que en Debian Etch (realmente no sé a partir de qué versión), el fichero my.cnf no está en /etc sino en /etc/mysql. Cuando se pone en marcha el servidor, lee correctamente ese fichero, pero el cliente de mysql no, así que no encuentra el socket de mysql en /tmp (realmente no está ahí, sino en /var/run/mysqld/mysqld.sock) que es el comportamiento por defecto. La solución, fácil, benditos sean los enlaces simbólicos: # cd /tmp && ln -s /var/run/mysqld/mysqld.sock Y luego... hacer que la autentificación HTTP vaya contra MySQL Lo primero es la instalación del módulo libapache2-mod-auth-mysql. A partir de aquí, configurar la autenticación que queramos realizar contra el MySQL. Un ejemplo dentro de uno de mis virtualhosts:

Auth_MySQL_Info localhost dbname secret

    <location /sopadepedres/login>
            AuthType Basic
            AuthName "Repositori per la SopaDePedres"

            AuthBasicAuthoritative Off
            Auth_MySQL_Authoritative On
            Auth_MySQL_Socket "/var/run/mysqld/mysqld.sock"
            Auth_MySQL on
            Auth_MySQL_DB tkmanager
            Auth_MySQL_Password_Table Users
            Auth_MySQL_Password_Field user_passwd
            Auth_MySQL_Username_Field user_name
            Auth_MySQL_Group_Table User_Project
            Auth_MySQL_Group_Field project_name
            Auth_MySQL_Group_Clause " AND project_name='sopadepedres' "
            Auth_MySQL_Encryption_Types Plaintext
            Auth_MySQL_Password_Clause " AND Users.active=1 "
            Require group sopadepedres
    </location>

Líneas a destacar:

AuthBasicAuthoritative Off Auth_MySQL_Authoritative On Aquí especificamos que no queremos la autenticación clásica (Basic) pero sí la de MySQL. Auth_MySQL_Socket "/var/run/mysqld/mysqld.sock" Esta otra es un workaround para lo que comentábamos al principio del post del cliente de MySQL. El resto de configuración, nada especial que no podamos ver en un $ zcat /usr/share/doc/DIRECTIVES.gz. Hacemos un reload de apache y ya podemos disfrutar del login con autenticación en base de datos :)

Tagged as ... No tags found!

If you liked this post, you can donate using Bitcoin 12jVrWkk5S6x5hEizThZwgTx59KxaDdK4C