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 secretLíneas a destacar:<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>
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 :)
If you liked this post, you can donate using Bitcoin 12jVrWkk5S6x5hEizThZwgTx59KxaDdK4C