Socket de MySql


#1

Una consulta para quienes usan RoR c/Linux (Ubuntu en mi caso).

Cada vez que reinicio la pc, tengo que armar de nuevo el link del socket
ya que donde se encuentra originalmente no es donde RoR lo precisa.

Esto lo hago con:
sudo ln -s /var/run/mysqld/mysqld.sock /tmp/mysql.sock

Pero no se como hacerlo para que se ejecute automaticamente en el
inicio.

Si alguien conoce como hacerlo se los agradeceria.

Saludos


#2

Puedes hacer un enlace con ln, se me ocurre.

Agustin Viñao escribió:


#3

2009/1/9 Agustin Viñao removed_email_address@domain.invalid:

Si alguien conoce como hacerlo se los agradeceria.

Una opción es especificar dónde está tu socket en el database.yml de
tu aplicación, para el entorno development, algo
así:
socket: /var/run/mysqld/mysqld.sock


Jaime I.
http://jaimeiniesta.com
http://www.workingwithrails.com/person/6722-jaime-iniesta


#4

Otra opción es editar el parametro socket en el fichero de configuración
de
mysql.

En ubuntu/debian el fichero de configuración esta en /etc/mysql/my.cnf

Busca el parametro socket (aparece dos veces socket, uno es para la
conexion
del cliente mysql y el otro para el socket del servidor) cambia ambos al
path que desees.

De todos modos en tu caso me gusta mas la solución propuesta por Jaime.

Jacobo García López de Araujo
blog: http://robotplaysguitar.wordpress.com

2009/1/9 Jaime I. removed_email_address@domain.invalid


#5

El 09/01/2009, a las 11:53, Agustin Viñao escribió:

Una consulta para quienes usan RoR c/Linux (Ubuntu en mi caso).

Cada vez que reinicio la pc, tengo que armar de nuevo el link del
socket
ya que donde se encuentra originalmente no es donde RoR lo precisa.

Si. Es un infierno.

Yo lo arregle insertando erb dentro del archivo database.yml

socket: <%= %x(mysql_config --socket) %>

Y que se busque las castañas otro para encontrar el dichoso archivo.


#6

Guillermo Álvarez Fernández wrote:

socket: <%= %x(mysql_config --socket) %>

Como curiosidad esto lo podías poner con comillas:
socket: <%= mysql_config --socket %>


#7

La llave socket tiene es gotcha, por eso yo lo primero que hago es
borrarla y poner en su lugar simplemente:

host: localhost


#8

El 09/01/2009, a las 16:49, Rafael G. escribió:

Guillermo Álvarez Fernández wrote:

socket: <%= %x(mysql_config --socket) %>
Como curiosidad esto lo podías poner con comillas:
socket: <%= mysql_config --socket %>

Lo se, pero le cogí cariño %x.


#9

Xavier N. wrote:

La llave socket tiene es gotcha, por eso yo lo primero que hago es
borrarla y poner en su lugar simplemente:

host: localhost

Xavier, muchas gracias por el dato, evidentemente es falta de
experiencia lo mio. Ya con esto quedo arreglado.

Saludos


#10

2009/1/11 Agustin Viñao removed_email_address@domain.invalid:

Xavier, muchas gracias por el dato, evidentemente es falta de
experiencia lo mio. Ya con esto quedo arreglado.

Es posible que el generador de database.yml sea mejorable.

Lo que sucede es que en el momento de ejecutar el comando rails, hay
codigo en el generador que decide cual seria la ubicacion de
mysql.sock. Este no es siempre “/tmp/mysql.sock” hay 8 o 10 paths
distintos conocidos. En particular para algunas distros de Linux se
genera otro.

Segun tengo entendido, se genera “socket” en lugar de “host” porque no
se tenia la seguridad de que todos los MySQLs de ahi afuera tuvieran
habilitado TCP/IP.

Pero creo que en general esto tiene como consecuencia que mucha gente
no conoce que existe “host” siquiera. Es util si cambias la ubicacion
de tu base de datos (yo he pasado del package de MySQL a la version de
MacPorts en mi laptop), si usas un proxy (sucede en Brightbox), y en
general tiene sentido.

Creo que al menos añadiria un comentario al generador, y de hecho creo
que generaria “host” y dejaria “socket” comentado.