2011-07-16 5 views
1

기존 Nginx Ubuntu 10.04 서버에 PHP (php-fpm)를 추가 했으므로 pdo_mysql을 사용할 수 없습니다. 다른 곳의 MySQL 서버에 연결하려고 시도하고 있지만, 검색된 모든 인터넷 검색 결과는 로컬 서버에서 작동하지 않는 MySQL과 관련되어 있으므로 진행 방법을 잘 모릅니다.pdo_mysql이 mysqld.sock 파일을 만들 수 없습니다.

mysqld가 설치되어 있지 않아서 필요한지, 또는이 방법이 필요한지 잘 모르겠습니다. 또한 서버에 mysql 사용자가 있기 때문에 그것은 mysqld.sock 만들 수없는 경우 궁금하네요?

오류 :

SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) Fatal error: Call to a member function query() on a non-object 

내 PHP 접속 코드 :

$this->PDO = new PDO('mysql:host=' . $this->config->getValue('db_host') . 
          ';dbname=' . $this->config->getValue('db_name'), 
          $this->config->getValue('db_user'), 
          $this->config->getValue('db_pass')); 

내 쿼리 라인이에 실패

$PDOStatement = $this->PDO->query($query); 

이 덕분에 어떤 도움을 주셔서 감사합니다.

+0

PDO가 소켓 파일을 만들지 않습니다. MySQL 서버는 않습니다. 소켓을 찾을 수없는 경우 MySQL이 실행 중이 지 않거나 PHP 구성이 잘못된 위치를 가리키고 있습니다. –

답변

1

커플은 D 당신이 MySQL의 클라이언트

  • 를 설치 한 확인해야합니까? 원격 컴퓨터에 연결하는 경우. 당신은 상자에 mysql을 실행하지 않아도되지만 당신은 여전히 ​​클라이언트가 필요하다고 생각합니다.
  • 호스트 값이 올바른지 확인하십시오. 더블 & 트리플 체크

  • 마지막으로 다음 명령을 사용하여 수동으로 연결하십시오.

    $ mysql -u <INSERT_USER_HERE> -p -h <INSERT_IP_OF_REMOTE_MACHINE_HERE> <INSERT_DB_NAME_HERE> 
    

    작동하지 않는 경우

. 정확한 오류 메시지와 함께 다시 오십시오.

+0

PHP에 의해'mysql-client' 바이너리가 사용되거나 필요하지 않습니다. – duskwuff

+0

그래, 내가 필요로했던 mysql-client! 나는 내가 필요로하는 것이 무엇인지 내 생애를 기억하지 못했습니다. 대단히 감사합니다 Gaurish, 빠른 응답을 주셔서 감사합니다! – Slowfib

+0

@duskwuff - 그런데 어떻게 문제가 해결 되었습니까? – CuriousMind

0

서버가 로컬 MySQL 인스턴스에 연결을 시도하고 있습니다. 데이터베이스가 다른 원격 서버에있는 경우 구성 파일의 db_host 값이 MySQL 서버의 올바른 호스트 이름을 가리키는 지 확인하십시오.

mysqld은 설치되어 있지 않지만 MySQL 클라이언트 라이브러리가 필요합니다. 사물의

0

$this->config->getValue('db_host')이 올바른 값을 반환하고 있습니까? 설명하는 동작은 빈 값이나 null 값을 반환하는 것처럼 들립니다.

관련 문제