sourcecode

SQLSTATE[HY000 [ 2002 ]라벨 홈스테드 내에서 접속이 거부되었습니다.

copyscript 2022. 9. 15. 22:49
반응형

SQLSTATE[HY000 [ 2002 ]라벨 홈스테드 내에서 접속이 거부되었습니다.

Larabel 5.2에서 Mac OS X 및 홈스테드 2.2.1 사용.

터미널(프로젝트 폴더 내 홈)에서 php 장인을 실행하여 사용 가능한 모든 명령을 볼 수 있습니다. 연결합니다.php artisan migrate 。
SQLSTATE[HY000] [2002] Connection refused


이러한 .env 설정으로 Laravel 프로젝트를 셋업했습니다.

DB_HOST=127.0.0.1
DB_DATABASE=tcv
DB_USERNAME=homestead
DB_PASSWORD=secret

DB_HOST에는 localhost, DB_USERNAME 및 DB_PASSWORD에는 root를 사용해 보았습니다.그리고 이것들의 가능한 모든 변형들이 합쳐져 있습니다!


Sequel Pro(DB 관리 응용 프로그램)에서 다음 설정으로 연결할 수 있습니다.

Host       127.0.0.1
Username   homestead
Password   secret
Database   tcv
Port       33060

단, 이 데이터베이스는 분명히 비어 있습니다.단말기에서 데이터베이스로 이행할 수 없기 때문입니다.

Sequel Pro에서 연결할 수 있기 때문에 설정상의 문제라고 생각합니다.근데 솔직히 뭐가 잘못됐는지 모르겠어

도와주셔서 감사합니다!!

★★★★
인지 같은 .SQLSTATE[HY000] [2002] Connection refused프로젝트를 MAMP로 이동하고 php 장인 마이그레이션을 실행할 때 오류가 발생했습니다.
~하다

방금 이걸 봤는데 .env 파일에서 이걸 변경하는 게127.0.0.1로로 합니다.localhost쳤습니니다다

DB_HOST=localhost

문제

에는 라라라가 있다.config/database.php이치요..env파일(모든 사용자가 시간 절약에 사용)을 프로젝트의 루트 디렉토리에 저장합니다.여기에는 전체 프로젝트에 사용할 수 있는 변수가 포함됩니다.

에서는 "L5"의 섹션 "MySql"config/database.php음음음같 뭇매하다

    'mysql' => [
        'driver'    => 'mysql',
        'host'      => env('DB_HOST', 'localhost'),
        'database'  => env('DB_DATABASE', 'forge'),
        'username'  => env('DB_USERNAME', 'forge'),
        'password'  => env('DB_PASSWORD', ''),
        'charset'   => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix'    => '',
        'strict'    => false,
        'engine'    => null,
    ],

포토는 설정되어 있지 않습니다.

비록 내 안에 있지만.envDB_PORT=33060value (3306) 않았다.config/database.php.
꼭 해.database.phpfilename을 클릭합니다.


고치다
Simply add 'port' => env('DB_PORT', 3306), to your config/database.php and set that value in .env like this DB_PORT=3306

Mac OS에서 MAMP를 사용하는 경우 mysql 데이터베이스 설정 파일에 다음 행을 추가합니다.

'deb_socket' => env("DB_SOCKET", "),

.env 파일 추가

DB_SOCKET=/어플리케이션/MAMP/tmp/mysql/mysql.sock

localhost127.0.0.1(.env 파일에서) 명령어를 실행합니다.

php artisan config:cache

문제는 해결됐습니다.

FROM .env File FROM .env File FROM db_DB_HOST の the the inhost DB_HOST の in in in in in 를 변환하는 것만으로 같은 문제가 발생하여 되었습니다.127.0.0.1localhost *JUST DO THIS AS GIVEN IN THE BELOW LINE* DB_HOST = localhost.

.config/database.php

뛰는 거 잊지 마

php artisan config:clear

문제가 있는 다른 사람을 위한 또 다른 해결책입니다.모든 설정을 맞췄는데 어떤 이유로 변경사항이 업데이트되지 않았습니다.Laravel은 실제로 설정 파일을 캐시합니다(전혀 바보같습니다).

설정을 갱신한 후의 해결 방법을 다음에 나타냅니다.

php artisan config:clear

백엔드 및 데이터베이스가 도커에서 시작된 경우

localhost 또는 127.0.0.1을 DB_HOST로 지정하는 대신 데이터베이스 서비스를 나타내는 등록된 서비스의 이름을 도커 컴포지트 파일에 입력합니다.

예를 들어 127.0.0.1을 db로 대체한 이유는 도커 컴포지트 파일에서 데이터베이스의 서비스 이름을 db로 정의했기 때문입니다.

내 도커-구성물은 이렇게 생겼다.

services:
    db: <------ This is the name of the DB_HOST
      container_name: admin_db
      image:mysql:5.7.22
    .
    .
    .

난 이 문제를 겪고 있었어요.는 Sequel Pro를 사용해야 .33060포트로서.env 파일에서는.env 파일에서는.3306나는 가지고 있었다.33060.env 파일에 있습니다.로 변경했습니다.3306그리고 그것은 성공하였다.

이것은 간단한 수정입니다.mysql 데이터베이스와 서버의 연결이 끊어졌습니다.로컬 서버를 실행하고 있는 경우 단말기에서 다음 작업을 수행합니다.

mysqld

그러면 데이터베이스가 다시 연결됩니다.그런 다음(홈브루를 사용하는 경우) 다음을 실행합니다.

brew services start mysql

그러면 로그인 시 데이터베이스가 자동으로 연결됩니다.

경우 시에도 했는데, 도커 사용 시 은 도커 사용 시 입니다..env 서류를 제출하다DB_HOST=db여기서 db는 데이터베이스 서버를 실행하는 컨테이너 이름입니다.

나도 같은 문제가 있었어, 이거 해 봐.

DB_HOST=localhost

mysql하지 않았습니다.3306

내 경우 이 오류가 갑자기 나타났다.이 알 수 없는 오류를 보면서 VM 외부에서 명령을 실행하려고 했습니다.

모든 구성을 .env 파일에 저장한 후 이미 실행 중인 경우php artisan serve, IT를 재기동합니다.

자격 증명서를 따옴표로 묶은 것이 도움이 되었다.

DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE='zzz'
DB_USERNAME='yyy'
DB_PASSWORD='XXX'

Larabel이 Homead 박스에서 mysql에 접속하여 로컬 환경에서 명령을 실행하는 경우:

DB_HOST=127.0.0.1
앱 앱 필요가 있니즈DB_PORT=3306
그 이동이행에 필요한이 필요해 것DB_PORT=33060그렇지 않으면그렇지 않으면을 준다 준다Connection refused
phpunit 필요phpunit 니즈DB_PORT=33060그렇지 않으면그렇지 않으면을 준다 준다Connection refused

DB_HOST=localhost
둘 다앱은 양쪽에서 동작합니다의 앱 작품.DB_PORT=3306또는 또는DB_PORT=33060
이동 실행할수 없습니다 run마이그레이션을 수 없다.
phpunit 실행할수 없습니다 runphpunit을 수 없다.

본 적 있다는 점을 명심 phpunit은phpunit은 그값을phpunit에서 가져온다는점에 유의하십시오에서 값이 걸린다..env.testing그 파일(존재하는 경우)과 파일(존재하는 경우)이외의 경우를 비롯해 파일, 만약 존재하는데,.phpunit.xml파일은app앱의 루트 폴더에있는 파일의 루트 폴더에.

나, 나는 vagrant를 사용하지만 php 장인을 박스 밖에서 실행하고 있기 때문에 기본적으로 권한이 없습니다.

당신이 오랫동안 PHP 장인을 재시작하지 않았기 때문일 수 있습니다.

DB 변경 및 구성 후: clear Tinker는 정상적으로 작동합니다.

그러나 브라우저에서 새 DB 연결을 다시 연결하려면 다시 실행해야 합니다.

php 장인 서비스

  1. 작업 관리자에서 sqld 종료
  2. xampp 제어판에서 MySQL을 중지하고 다시 시작합니다.

그래도 같은 문제가 발생할 경우 루트 폴더에서 실행

php artisan cache:clear
php artisan config:cache
php artisan serve
  1. 문제가 해결되지 않으면 Ubuntu 앱 등을 통해 여러 개의 SQL Server 복사본을 사용하고 있는지 확인합니다. 사용할 경우 Ubuntu에서 MySQL 서버를 중지합니다.

    sudo 서비스 MySQL 중지

DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=8080
DB_DATABASE=flap_safety
DB_USERNAME=root
DB_PASSWORD=mysql

상기의 내용은 나의 .env입니다.

    'mysql' => [
        'driver' => 'mysql',
        'url' => env('DATABASE_URL'),
        'host' => env('DB_HOST', 'mysql'),
       // 'port' => env('DB_PORT', '8080'),
        'database' => env('DB_DATABASE', 'forge'),
        'username' => env('DB_USERNAME', 'forge'),
        'password' => env('DB_PASSWORD', 'mysql'),
        'unix_socket' => env('DB_SOCKET', ''),
        'charset' => 'utf8mb4',
        'collation' => 'utf8mb4_unicode_ci',
        'prefix' => '',
        'prefix_indexes' => true,
        'strict' => true,
        'engine' => null,
        'options' => extension_loaded('pdo_mysql') ? array_filter([
            PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
        ]) : [],
    ],

위에 제시된 것은 제 데이터베이스입니다.php 파일.방금 데이터베이스에서 포트를 코멘트했습니다.php 그리고 효과가 있었어요.

사용하시는 경우Homestead기본 mysql 포트로 실행해야 합니다.그래서 사용하는 대신DB_PORT=33060, 를 사용해 주세요.DB_PORT=3306.env 파일에 저장해 주세요.또, 잊지 말고,php artisan migrate모든 것이 정상일 것입니다.

도움이 됐으면 좋겠다.

이 문제를 해결한 유일한 방법은 연결 세부사항을 구성/데이터베이스에 넣는 것이었습니다..env 파일 대신 php를 사용합니다.도움이 되었으면 좋겠다

저도 비슷한 문제가 있어서 여기에 제시된 제안이 도움이 되지 않았습니다.이것으로, 애플리케이션명과 데이타베이스의 호스트명을 같은 값으로 설정할 수 있게 되었습니다.이 경우 127.0.0.1이 올바르게 동작합니다.

APP_URL=127.0.0.1

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=zzz
DB_USERNAME=yyy
DB_PASSWORD=XXX

네, 업데이트하면 호스트가 문제가 아니라 포트가 문제인 것 같습니다.

즉, 실제로는 브라우저 테스트용 포트 3306이지만 터미널 및 Sequel Pro 33060용 포트입니다.Homestead.yaml에 추가하고 여기에 설정하는 것과 관련이 있을까요?

Larabel과 관련된 설정을 읽으면 다음과 같이 표시됩니다.

MySQL: 330603306으로 전송

나는 마주쳤다

SQLSTATE[HY000] [2002] 연결이 거부되었습니다(SQL: 프로젝트에서 * 선택).

원인은 MySQL 서버를 시작하지 않았기 때문입니다.

오류 문제 슈팅의 첫 번째 단계로 MySQL이 실행되고 있는지 확인하는 것이 도움이 될 수 있습니다.

서버를 재기동해, 「빵」하고 수정하면 되는 것을 알았습니다.

홈스테드를 사용하는 경우, 예를 들어 장인 테스트를 실행하기 전에 홈스테드에 ssh로 접속하는 것을 잊지 마십시오.

구성/데이터베이스도 읽을 수 없는 것 같습니다.php. 엔트리를 .env 파일로 편집하자마자 동작하기 시작했습니다.

만약 이게 미래에 누군가에게 도움이 된다면...WSL을 사용하여 장인용 명령어 등을 실행해야 하는데 MySQL은 Windows 환경에서 작동합니다.올바른 용어를 사용하는 데 어려움을 겪고 있지만, 제 머릿속에서는 "당신이 가상 머신이라고 생각하든 상관없습니다.당신은 문자 그대로눈앞에 있기 때문에 제가 "커넥트"라고 말할 그렇게 하기를 기대합니다."라고 말합니다.

제가 제대로 이해했다면, PHP는 마법의 WSL랜드에서 명령어를 실행하고 있기 때문에 WSL랜드에 관련된 데이터베이스의 IP가 필요합니다.

프롬프트에서 Windows를 했습니다.서서실실 실다다다다다ipconfigIPv4 의 경우, Laravel DB_HOST 의 경우.WSL을 사용하다

말이 너무 많은 건 알지만, 개인적으로 모든 가상 머신에 대해 매우 혼란스러워서 몇 주 전에 찾았으면 하는 답변을 넣었습니다.

Windows로 돌아가지 않았으면 좋았을 텐데.

만약 당신이 어떤 종류의proxy ★★★★★★★★★★★★★★★★★」vpn 제 문제였어요. 그것은 나의 문제였다.

언급URL : https://stackoverflow.com/questions/35394230/sqlstatehy000-2002-connection-refused-within-laravel-homestead

반응형