Problemas con rails y MySQL
Ruby, Tecnología May 29th, 2007Un problema frecuente que nos podemos encontrar al hacer un depliegue de una aplicación RoR es el siguiente:
Nada más lanzar la pertinente migración nos encontramos con:
rake aborted!
No such file or directory – /sock
Su equivalente conectándonos con el cliente mysql sería:
“Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ “
Este error puede dejarnos confusos durante algún tiempo pero sin embargo tiene fácil solucion:
En algunas versiones de MySQL podremos ejecutar desde la línea de comandos el comando mysql_config con algunos parámetros, en este caso nos interesa –socket, nos dará la ruta del fichero.
#mysql_config –socket
/tmp/mysql.sock
Si no disponemos del comando mysql_config tendremos que mirar en el fichero my.cnf, su localización varía pero lo habitual es encontrarlo en alguno de estos directorios:
- /etc
- /etc/mysql
- /usr/local/etc
- /usr/local/etc/mysql
Una vez tengamos la ruta del socket modificaremos la configuración de nuestro fichero config/database.yml añadiendo en los bloques necesarios la siguiente línea:
socket: /tmp/mysql.sock
De modo que por ejemplo nuestra base de datos de desarrollo quedaría:
development:
adapter: mysql
database: database
username: user
password: secret
host: localhost
socket: /tmp/mysql.sock
Ahora podremos lanzar de nuevo la migración.