나는 성공적으로 fortrabbit 내 (아주 기본) 사이트를 구축했지만, 최대한 빨리 SSH 연결로 등 일부 명령 (실행하는 데 있다고 생각 php artisan migrate
또는php artisan db:seed
오류 메시지가 나타납니다.
[PDOException]
SQLSTATE[HY000] [2002] No such file or directory
어떤 시점에서 내 테이블이 있기 때문에 마이그레이션이 작동해야했지만 지금은 왜 그것이 나를 위해 작동하지 않는지 설명하지 않습니다.
답변
오류 메시지는 소켓을 통한 MySQL 연결이 시도되었음을 나타냅니다 (지원되지 않음).
Laravel (artisan)의 맥락에서 아마도 다른 / 올바른 환경을 사용하고 싶을 것입니다. 예 : php artisan migrate --env=production
(또는 어떤 환경). 여기를 참조 하십시오 .
답변
라 라벨 4 :
app/config/database.php
파일의 “host” 를 “localhost”에서 “127.0.0.1”로 변경라 라벨 5 :
.env
파일의 “DB_HOST” 를 “localhost”에서 “127.0.0.1”로 변경
나는 똑같은 문제가 있었다. 위의 해결책 중 어느 것도 나를 위해 일하지 않았습니다. /app/config/database.php 파일의 “host”를 “localhost”에서 “127.0.0.1”로 변경하여 문제를 해결했습니다.
왜 “localhost”가 기본적으로 작동하지 않는지 확실하지 않지만 symfony2 게시물에서 해결 된 비슷한 질문에서이 답변을 찾았습니다. https://stackoverflow.com/a/9251924/1231563
업데이트 :
일부 사람들은이 픽스가 왜 작동하는지 묻기 때문에 주제에 대해 약간의 연구를했습니다. 이 게시물 https://stackoverflow.com/a/9715164/1231563에 설명 된 것처럼 다른 연결 유형을 사용하는 것처럼 보입니다.
여기서 발생한 문제는 “localhost”가 UNIX 소켓을 사용하고 표준 디렉토리에서 데이터베이스를 찾을 수 없다는 것입니다. 그러나 “127.0.0.1”은 TCP (Transmission Control Protocol)를 사용합니다. 이는 본질적으로이 경우 UNIX 소켓보다 훨씬 안정적인 컴퓨터의 “로컬 인터넷”을 통해 실행됨을 의미합니다.
답변
같은 문제가 발생하여 Mac OS X 10.10 Yosemite를 실행하고 있습니다. 이미 OS와 함께 제공되는 Apache 서버 및 PHP를 활성화했습니다. 그런 다음 mCrypt 라이브러리를 시작하도록 구성했습니다. 그 후 모델과 DB로 작업 할 때 오류가 발생했습니다.
[PDOException]
SQLSTATE[HY000] [2002] No such file or directory
내가 찾은 이유는 PHP와 MySQL을 연결할 수 없기 때문입니다. 이 문제를 해결하려면 다음 단계를 따르십시오.
-
터미널을 열고 다음을 사용하여 mysql에 연결하십시오.
mysql -u root -p
-
관련 비밀번호를 묻습니다. 그런 다음 mysql promt를 받으면 다음 명령을 입력하십시오.
mysql> show variables like '%sock%'
-
다음과 같은 것을 얻을 것입니다 :
+-----------------------------------------+-----------------+ | Variable_name | Value | +-----------------------------------------+-----------------+ | performance_schema_max_socket_classes | 10 | | performance_schema_max_socket_instances | 322 | | socket | /tmp/mysql.sock | +-----------------------------------------+-----------------+
-
마지막 행의 값을 유지하십시오.
/tmp/mysql.sock
-
당신의에서
laravel
프로젝트 폴더의 대한 모습 database.php의 당신은 DB 연결 매개 변수를 구성 할 경우 파일이 있습니다. 에서 MySQL의 섹션 끝에 다음 줄을 추가합니다 :'unix_socket' => '/tmp/mysql.sock'
-
다음과 같은 것이 있어야합니다.
'mysql' => array( 'driver' => 'mysql', 'host' => 'localhost', 'database' => 'SchoolBoard', 'username' => 'root', 'password' => 'venturaa', 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', 'unix_socket' => '/tmp/mysql.sock', ),
이제 변경 사항을 저장하고 페이지를 새로 고침하면 작동합니다!
답변
[PDOException] SQLSTATE[HY000] [2002] No such file or directory
다른 이유로 오류 가 발생했습니다 . 우분투 12.04에서 Apache 2.4.7, PHP v5.5.10 및 MySQL 5.6.16으로 완전히 새로운 LAMP 스택을 완성했습니다. 사이트를 다시 옮겨서 해고했습니다. 그러나 [PDOException]
위의 이유로 Laravel 4.2.x 기반 사이트를로드 할 수 없습니다 . 그래서이 php -i | grep pdo
줄을 확인 하고 알았습니다.
pdo_mysql.default_socket => /tmp/mysql.sock => /tmp/mysql.sock
그러나 내 /etc/my.cnf에서 양말 파일은 실제로에 /var/run/mysqld/mysqld.sock
있습니다.
그래서, 나는 php.ini를 열어서 값을 설정했습니다 pdo_mysql.default_socket
:
pdo_mysql.default_socket=/var/run/mysqld/mysqld.sock
그런 다음 아파치를 다시 시작하고 확인했습니다 php -i | grep pdo
.
pdo_mysql.default_socket => /var/run/mysqld/mysqld.sock => /var/run/mysqld/mysqld.sock
그것은 나를 위해 그것을 고쳤다.
답변
@stuyam의 답변으로 “No such file or directory”문제가 해결되었습니다.
짧은 대답 : /app/config/database.php 파일의 “host”를 “localhost”에서 “127.0.0.1”로 변경하십시오.
그러나 “연결이 거부되었습니다”라는 오류가 발생했습니다. 누구든지 같은 문제가 발생하면 app / config / local / database.php 파일을 업데이트하여 포트가 8889가되도록했습니다.
'mysql' => array(
'driver' => 'mysql',
'host' => '127.0.0.1',
'port' => '8889',
'database' => 'databaseName',
'username' => 'root',
'password' => 'root',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
),
답변
Laravel Homestead를 사용하는 경우 서버에서 명령을 호출하고 있는지 확인하십시오.
homestead ssh
그런 다음 올바른 디렉토리로 cd하고 명령을 실행하십시오.
답변
내 경우에는 전혀 문제가 없었으며 mysql 서비스를 시작하는 것을 잊어 버렸습니다 …
sudo service mysqld start