我正在努力開始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