programing

Larabel 5.1 - 데이터베이스 연결 확인

javaba 2023. 1. 19. 21:21
반응형

Larabel 5.1 - 데이터베이스 연결 확인

라라벨에 데이터베이스가 연결되어 있는지 확인하려고 합니다.

서류를 찾아봤는데 아무것도 없어요.가장 가까운 것은 이것이지만, 이것으로는 문제가 해결되지 않는다.

MySQL 인스턴스 3개가 서로 다른 머신에 설정되어 있습니다.다음은 제가 달성하고자 하는 것을 간략화한 버전입니다.

  1. 데이터베이스 1이 연결되어 있는 경우 데이터를 저장합니다.
  2. 데이터베이스 1이 연결되어 있지 않은 경우 데이터베이스 2가 연결되어 있는지 확인합니다.
  3. 데이터베이스 2가 연결되어 있는 경우 데이터 저장
  4. 데이터베이스 2가 연결되어 있지 않은 경우 데이터베이스 3이 연결되어 있는지 확인합니다.
  5. 데이터베이스 3이 연결되어 있는 경우 데이터를 저장합니다.

Larabel 5.1에서 데이터베이스가 연결되어 있는지 확인하는 방법이 있습니까?

기본 PDO 인스턴스를 가져옵니다.실패하면 Larabel은 데이터베이스에 접속할 수 없게 됩니다.

use Illuminate\Support\Facades\DB;

// Test database connection
try {
    DB::connection()->getPdo();
} catch (\Exception $e) {
    die("Could not connect to the database.  Please check your configuration. error:" . $e );
}

알렉스의 솔루션을 장인과 함께 사용할 수 있습니다.명령줄에서 다음 명령을 실행합니다.

php artisan tinker
DB::connection()->getPdo();

접속이 정상일 경우

CONNECTION_STATUS: "접속 OK, 전송 대기 중입니다." ,

응답의 종료에 가까워지고 있습니다.

이는 컨트롤러 방식 또는 루트의 인라인 기능으로 사용할 수 있습니다.

   use Illuminate\Support\Facades\DB;
   //....
   try {
        DB::connection()->getPdo();
        if(DB::connection()->getDatabaseName()){
            echo "Yes! Successfully connected to the DB: " . DB::connection()->getDatabaseName();
        }else{
            die("Could not find the database. Please check your configuration.");
        }
    } catch (\Exception $e) {
        die("Could not open connection to database server.  Please check your configuration.");
    }

다음 작업도 수행할 수 있습니다.

php artisan migrate:status

마이그레이션 테이블에서 마이그레이션을 가져오기 위해 DB 연결을 만듭니다.연결이 실패하면 예외가 발생합니다.

다음 쿼리를 사용하여 데이터베이스 연결을 확인할 수 있습니다.

use Illuminate\Support\Facades\DB;
// ...
$pdo = DB::connection()->getPdo();

if($pdo)
   {
     echo "Connected successfully to database ".DB::connection()->getDatabaseName();
   } else {
     echo "You are not connected to database";
   }

상세한 것에 대하여는, 이 페이지를 참조해 주세요.https://laravel.com/docs/5.0/database

또 다른 접근법:

Laravel이 데이터베이스 접속을 시도할 때 접속에 실패하거나 오류가 발견되면 Laravel은 다음을 반환합니다.PDOException에러. 이 에러를 검출해, 액션을 리다이렉트 할 수 있습니다.

에 다음 코드를 추가합니다.app/filtes.php파일.

App::error(function(PDOException $exception)
{
    Log::error("Error connecting to database: ".$exception->getMessage());

    return "Error connecting to database";
});

이게 도움이 됐으면 좋겠네요.

언급URL : https://stackoverflow.com/questions/33432752/laravel-5-1-checking-a-database-connection

반응형