VillageSQL is a drop-in replacement for MySQL with extensions.
All examples on this page work on VillageSQL. Install Now →
ERROR 2002: 소켓을 통해 연결할 수 없음
(2)는 errno 2, “no such file”입니다.
- 서버가 실행 중인지 확인하세요:
pgrep mysqld또는 서비스 관리자. mysql -h localhost는 Unix 소켓을 사용합니다. 서버가 다른 소켓 경로에서 수신 대기한다면 경로를 전달하세요:mysql -S /path/to/mysql.sock.- 소켓 대신 TCP를 강제하려면
-h localhost가 아니라-h 127.0.0.1을 사용하세요.
ERROR 1045: 접근 거부
- 서버가 여러분이라고 인식한 사용자.
- 여러분이 연결해 온 호스트. MySQL 계정은
user@host쌍입니다:'app'@'localhost'와'app'@'%'는 서로 다른 비밀번호와 권한을 가진 서로 다른 계정입니다. using password: YES/NO— 비밀번호가 전송되었는지 여부.NO는 클라이언트가 읽은 환경이나 구성 파일에서 비밀번호를 찾지 못했다는 뜻인 경우가 많습니다.
SELECT user, host FROM mysql.user;) ALTER USER로 비밀번호를 재설정하여 해결하세요. 사용자 관리를 참조하세요.
ERROR 1055: ONLY_FULL_GROUP_BY
customer_id가 있지만 total 값은 여러 개이며, 쿼리는 어떤 것을 원하는지 전혀 말하지 않습니다. 이전 MySQL 버전은 임의로 하나를 골랐습니다. 5.7부터 기본 ONLY_FULL_GROUP_BY 모드가 이를 오류로 만들며, 처음부터 잘못되었던 쿼리로부터 여러분을 보호하고 있는 것입니다. 세 가지 진짜 해결 방법:
sql_mode에서 ONLY_FULL_GROUP_BY를 비활성화하는 것도 동작하지만 잘못된 답입니다: 오류를 다시 조용히 임의적인 결과로 되돌립니다. ANY_VALUE()가 약속하는 것과 약속하지 않는 것은 MySQL GROUP BY 성능을 참조하세요.
ERROR 1064: 구문 오류
ERROR 1062: 중복 항목
- 행이 두 번 존재해서는 안 됨: 중복 키를 만드는 생성기를 수정하세요.
- 삽입이 대신 기존 행을 업데이트해야 함:
INSERT ... ON DUPLICATE KEY UPDATE를 사용하세요. 업서트를 참조하세요. - 삽입을 조용히 건너뛰어야 함:
INSERT IGNORE. 다른 오류도 함께 숨기므로 아껴서 사용하세요.
모든 MySQL 오류 읽는 법
ERROR <number> (<SQLSTATE>): <message> 패턴은 세 가지 신호를 담고 있습니다. 번호는 MySQL 고유이며 최고의 검색 키입니다. SQLSTATE 클래스는 이식 가능합니다: 28000은 인증, 42000은 쿼리 문제, 23000은 제약 조건 위반, HY000은 일반 범주입니다. 클라이언트 측 오류(2002 같은 2xxx)는 서버에 도달하지 못한 것이고, 서버 측 오류(1xxx)는 연결이 동작한다는 뜻입니다.
참고
- 사용자 관리 — 접근 거부 오류 뒤에 있는 계정 모델
- MySQL GROUP BY 성능 — ONLY_FULL_GROUP_BY, 그리고 비활성화가 잘못된 해결책인 이유
- MySQL GROUP BY — 절 작성에 관한 튜토리얼 레슨
- 업서트 — 중복 키 오류를 업데이트로 바꾸기
- MySQL 튜토리얼용 서버 설치 — 연결 오류와 이를 재현하는 명령