2013-04-29 4 views
0

이것은 나를 미치게합니다! Mac OS X Lion에 MySQL 환경 설정 패널이 있으며 터미널에서 시작하고 중지 할 수도 있습니다. mysql은 터미널에서 작동하며 데이터베이스에 연결할 수 있지만 PHP 소스 코드에서 연결하면 연결되지 않습니다. 그것은 지난 밤에 일했다. 그러나 지금 그것은하지 않는다. 그리고 나는 이유를 모른다. 다음은 몇 가지 세부 사항 : 나는 올바른 디렉토리실행 중이라도 MySQL에 연결할 수 없습니다.

  • 에 mysql.sock을 찾아 php.ini을 말하고

    • 는 또한 올바른 경로로 mysql을의 my.cnfsocket 변수를 설정했습니다.

    • 소켓 파일을 /var/tmp/mysql.sock에 링크하기 위해 mysql 소켓 (/tmp/mysql.sock)의 기본 디렉토리에 심볼릭 링크를 만들었습니다.

    • 환경 설정 창에서 MySQL을 중지하고 터미널에서 시작하려고하면 '성공!'이라고 표시됩니다. 터미널에서 mysql 명령으로 사용할 수는 없습니다.

    누구나이 상황에서 벗어날 수 있습니까?

  • +0

    [su]로 이전하는 투표; 그러나 터미널이 실행중인 사용자는'/ var/tmp/mysql.sock'에 대한 쓰기 권한이 있습니까? – eggyal

    +0

    PHP를 통해 MySQL 서버에 연결할 수 있습니까? –

    +0

    @JamesElliott 아니요 PHP를 통해 연결할 수 없습니다. – mavili

    답변

    0

    내 자신의 질문에 대답 :하지만 구성에 차이가 있었다 이유

    OK 그래서 난 모르겠어요. my.cnf 파일에 socket 변수를 설정 했더라도 mysql 서버를 시작하면 항상 소켓의 다른 위치를 찾았습니다.

    의 my.cnf

    [mysqld] 
    socket=/var/tmp/mysql.sock 
    
    [client] 
    socket=/var/tmp/mysql.sock 
    

    내가 여전히 오류가 발생했습니다 : ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2). 어떻게 아직도 /tmp/mysql.sock을 찾는가?

    link을 찾은 후, 내 mysql 서버가 /usr/local/mysql/my.cnf에서 설정 파일을 읽지 못한다는 사실을 깨달았습니다.

    이것은 내가 mysqladmin 명령에서 가져온 것입니다 :

    Default options are read from the following files in the given order: 
    /etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf 
    

    솔루션 : 내 홈 폴더

    ln -s /usr/local/mysql/my.cnf ~/.my.cnf 
    

    그리고 YESS에 심볼릭 링크를 만들어! 문제가 해결되었습니다.

    +0

    그'my.cnf'의 위치는 무엇입니까? – eggyal

    +0

    이 파일은'/ usr/local/mysql /'에 있습니다. 설치시 기본 디렉토리입니다. 나는 그것을 바꾸지 않았다. 그러나 나는 다른 디렉토리에서 다른 my.cnf를 찾아서 결과를 찾지 못했다. 그래서 나는 그것이 mysql이 확인한 유일한 것이라고 생각 했는가? – mavili

    +0

    이것은'mysqladmin | more' :'기본 옵션은 주어진 순서대로 다음 파일에서 읽습니다. /etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf '집에 my.cnf 파일이 없으므로 변수를 설정 한 파일이 마지막으로 읽혀집니다. 그래서 이상한 – mavili

    관련 문제