Error Packet이라는 것은 처리가 실패했다라는 것을 서버에서 클라이언트에 통지하는 것이다.
인증시 실패했을 경우 이외에 SQL구문에러가 된 경우에도 송신된다.
에러 코드, SQL State코드, 에러 메세지가 포함되어 있다.
클라이언트는 패킷헤더의 뒤쪽 선두 1바이트가 0xff인지 아닌지 확인하는 것으로 Error Packet인지 판단가능하다.
Error Packet
패킷헤더 : 4바이트
필드수 : 1바이트 , oxff로 고정
MySQL에러코드: 2바이트, MySQL고유의 에러코드, 16진수표기
sql state marker: 1바이트, 항상 0x23(#)
sqlstate의 값: 5바이트, 문자열표기(1자리당 1바이트에 대응)
에러메세지: n바이트, 에러메세지본체. 0x00로 끝나지 않음(패킷헤더가 있기 때문에 사이즈확인가능)
ex>Access denied for user 'user1'@'localhost' (using password: YES)
41 63 63 65 73 73 20
64 65 6e 69 65 64 20
66 6f 72 20
75 73 65 72 20
27 75 73 65 72 31 27
40 27 6c 6f 63 61 6c 68 6f 73 74 27 20
28 75 73 69 6e 67 20
70 61 73 73 77 6f 72 64 3a 20
59 45 53 29