반응형
MySQL 서버에서 데이터를 가져 오기 위해 PDO를 사용하고 있습니다. 내가 알아 차린 것은 MySQL 서버를 사용할 수없는 경우이 코드가 예외를 반환하는 데 정말 (상대적으로) 오래 걸립니다.
try {
$handle = new PDO($db_type . ':host='.$db_host.';dbname='.$db_name,$db_user,$db_pass);
// Tried using PDO::setAttribute and PDO::ATTR_TIMEOUT here
} catch(PDOException $e) {
echo $e->getMessage;
}
MySQL의 경우 예외가 발생하는 데 2 분 이상 걸리고 (SQLSTATE [HY000] [2003] MySQL 서버에 연결할 수 없습니다 ...) PostgreSQL에서는 30 초 (SQLSTATE [08006] [7] timeout expired) ).
PDO :: setAttribute 및 PDO :: ATTR_TIMEOUT을 사용해 보았지만 작동하지 않습니다. 이 진술 전에 문제가 발생하기 때문에 이해가 될 것 같습니다.
DB 접속을위한 타임 아웃 설정 방법이 있나요? PDO가 거기에 아무것도 없다는 것을 깨닫기에는 2 분 / 30 초가 정말 길어 보입니다.
나는 이것이 어딘가에서 행해지는 것을 본 것 같지만 내 인생을 위해 다시 찾을 수 없습니다.
해결 방법
$DBH = new PDO(
"mysql:host=$host;dbname=$dbname",
$username,
$password,
array(
PDO::ATTR_TIMEOUT => 5, // in seconds
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
)
);
참조 페이지 https://stackoverflow.com/questions/21403082
반응형
'MySql' 카테고리의 다른 글
MySQL ExpressJS를 사용하여 XML로 어떻게 응답 할 수 있습니까? (0) | 2020.12.12 |
---|---|
MySQL 준비된 진술 및 수레 (0) | 2020.12.12 |
MySQL INSERT INTO table IF 테이블이 존재하지 않으면 CREATE TABLE (0) | 2020.12.12 |
MySQL foreach 루프를 사용하고 데이터베이스에 삽입하는 다중 이미지 업로드 (0) | 2020.12.12 |
MySQL PHPExcel 다운로드가 제대로 작동하지 않음 (0) | 2020.12.12 |
댓글