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