2017-05-19 1 views
0

개발 환경을 설정 중입니다.mysqld에서 에러를 발생시키는 방법

로깅이 MySQL에서 예상대로 작동하는지 확인하고 싶습니다.

PHP로 프로그래밍 방식으로 어떻게 할 수 있습니까?

<?php 

$pdo = new \PDO(
    'mysql:host=localhost;', 
    'root', 
    '' 
); 
$result = $pdo->query("signal sqlstate '45000' set message_text = 'Triggering error on purpose (test)';"); 

?> 

그러나,이 오류 로그에 오류를 트리거하지 않습니다

Inspired by this answer

, 나는 단지이 같은 최소한의 테스트를 실행했습니다. /var/log/mysql/ ( error.log)의 오류가 발생할 것으로 예상됩니다.

저는 Mac OS X에서 Docker 내부에서 Ubuntu 16.04를 실행 중이며 MariaDB를 사용하고 있습니다.

이것은 프로그래밍과 sysadmin 사이의 교차로에서 질문입니다. 더 관련성이 높은 것으로 생각되면 AskUbuntu로 자유롭게 마이그레이션하십시오.

+0

mysqlds 로그 파일에 무엇인가 기록 될 것으로 예상됩니까? 그러면 클라이언트가 처리 할 오류가 트리거됩니다. – Mikpa

+0

@Mikpa 나는/log/mysql /'(error.log'에) 오류를 예상 할 수 있도록 명확하게 질문을 편집했습니다. 위의 코드가 로그에 오류를 발생 시킨다는 것을 의미합니까? –

+0

signal sqlstate 45000이 호출 프로그램에 오류를 주지만, 보통 error.log에는 전달되지 않습니다. 읽기 http://www.mysqltutorial.org/mysql-signal-resignal/ – Mikpa

답변

1

mysql error.log는 호출 프로그램에 대한 오류를 수신하지 않습니다.

본문 error.log.

+1

"오류 로그에는 mysqld 시작 및 종료 시간, 시작 및 종료 중에 발생하는 진행 메모 및 서버가 작동하는 동안 발생하는 치명적인 오류에 대한 정보가 들어 있습니다 달리는. mysqld가 자동으로 검사하거나 복구해야하는 테이블을 발견하면, 에러 로그에 메시지를 쓴다. "그렇다면, MySQL 에러보다 데이터베이스 에러에 대한 아파치 에러 로그를 모니터링하는 것이 좋다. –

+0

예, 맞습니다. – Mikpa

관련 문제