일을 하려고 합니다 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