Estoy intentando ponerme rails dbconsole
a trabajar (Rails 3.2.6). El problema es que cuando ejecuto el comando me sale:
gems/railties-3.2.6/lib/rails/commands/dbconsole.rb:81:in `exec': Permission denied -
/usr/local/bin/mysql (Errno::EACCES)
Estoy usando OS X Lion y la forma habitual de ejecutarlo mysql
en la línea de comandos funciona, simplemente no funciona rails dbconsole
. Los permisos en el /usr/local/bin/mysql
son:
$ ls -la /usr/local/bin/mysql
lrwxr-xr-x 1 root admin 16 Mar 13 20:27 /usr/local/bin/mysql -> /usr/local/mysql
El usuario desde el que llamo a estos comandos está en el grupo 'Administrador' (como se evidencia en el cuadro de diálogo Preferencias -> Usuarios)
¿Alguna idea sobre cómo solucionar este problema? ¿Cuál podría ser la causa de mysql
poder ejecutarse en la línea de comando pero no a través de otro programa (ruby/rails en este caso)?
Y mientras tengo este problema de permisos, ¿podría indicarme algún artículo/libro/método decente que me ayude a comprender el sistema de permisos y a solucionar estos problemas en el futuro?
Respuesta1
Conjetura: mysql
no se ejecuta /usr/local/bin/mysql
, sino un mysql
ejecutable en alguna otra ubicación de $PATH
. Es inusual que /usr/local/mysql
sea un archivo ejecutable: esperaría que fuera un directorio, si es que existe. Correr
type mysql
para ver qué mysql
se ejecuta realmente y, si es necesario, corregir el /usr/local/bin/mysql
enlace simbólico para que apunte al lugar correcto.
Puedes ver lo que realmente hay detrás del enlace simbólico agregando la -L
opción a ls
(y -d
, en caso de que resulte ser un directorio):
ls -lLd /usr/local/bin/mysql