Estou tentando começar rails dbconsole
a trabalhar (Rails 3.2.6). O problema é que quando executo o comando, recebo:
gems/railties-3.2.6/lib/rails/commands/dbconsole.rb:81:in `exec': Permission denied -
/usr/local/bin/mysql (Errno::EACCES)
Estou usando o OS X Lion, e a maneira usual de executar mysql
na linha de comando funciona - simplesmente não funciona rails dbconsole
. As permissões no /usr/local/bin/mysql
são:
$ ls -la /usr/local/bin/mysql
lrwxr-xr-x 1 root admin 16 Mar 13 20:27 /usr/local/bin/mysql -> /usr/local/mysql
O usuário de quem estou chamando esses comandos está no grupo 'Admin' (conforme evidenciado na caixa de diálogo Preferências -> Usuários)
Alguma ideia de como consertar isso? Qual poderia ser a causa de mysql
poder executar na linha de comando, mas não através de outro programa (Ruby/Rails neste caso).
E enquanto estou nesse problema de permissões, você poderia me indicar um artigo/livro/método decente que me ajudará a entender o sistema de permissões e a solucionar esses problemas no futuro?
Responder1
Conjectura: mysql
não é executado /usr/local/bin/mysql
, mas um mysql
executável em algum outro local no $PATH
. É incomum ser /usr/local/mysql
um arquivo executável: eu esperaria que fosse um diretório, se é que existe. Correr
type mysql
para ver o que mysql
realmente funciona e, se necessário, corrija o /usr/local/bin/mysql
link simbólico para apontar para o lugar certo.
Você pode ver o que realmente está por trás do link simbólico adicionando a -L
opção a ls
(e -d
, caso seja um diretório):
ls -lLd /usr/local/bin/mysql