Пытаюсь приступить rails dbconsole
к работе (Rails 3.2.6). Проблема в том, что при запуске команды получаю:
gems/railties-3.2.6/lib/rails/commands/dbconsole.rb:81:in `exec': Permission denied -
/usr/local/bin/mysql (Errno::EACCES)
Я использую OS X Lion, и обычный способ запуска mysql
в командной строке работает - он просто не работает через rails dbconsole
. Разрешения на /usr/local/bin/mysql
:
$ ls -la /usr/local/bin/mysql
lrwxr-xr-x 1 root admin 16 Mar 13 20:27 /usr/local/bin/mysql -> /usr/local/mysql
Пользователь, от имени которого я вызываю эти команды, входит в группу «Администраторы» (как видно из диалогового окна «Настройки» -> «Пользователи»).
Есть идеи, как это исправить? Что может быть причиной того, что mysql
через командную строку можно запустить, а через другую программу (в данном случае ruby/rails) — нет.
И пока я разбираюсь с этой проблемой с разрешениями, не могли бы вы указать мне на хорошую статью/книгу/метод, которые помогут мне понять систему разрешений и устранить подобные проблемы в будущем?
решение1
Предположение: mysql
не запускается /usr/local/bin/mysql
, а mysql
исполняемый файл в каком-то другом месте в $PATH
. Необычно иметь /usr/local/mysql
исполняемый файл: я бы ожидал, что это будет каталог, если он вообще существует. Запустить
type mysql
чтобы увидеть, что mysql
действительно работает, и при необходимости исправить /usr/local/bin/mysql
символическую ссылку, чтобы она указывала на правильное место.
Вы можете увидеть, что на самом деле стоит за символической ссылкой, добавив опцию -L
( ls
и -d
, в случае, если это окажется каталог):
ls -lLd /usr/local/bin/mysql