예비용 계정을 셋팅하고 관리자메인을 누르니 아래와 같은 에러문구가 나오는데요

예비용 계정을 셋팅하고 관리자메인을 누르니 아래와 같은 에러문구가 나오는데요

QA

예비용 계정을 셋팅하고 관리자메인을 누르니 아래와 같은 에러문구가 나오는데요

본문

이것은 어떤문에가 있다는 의미인지 아시는분께서는 조언좀 부탁드릴께요.

 

기존에 싸이트를 고대로 압충파일로 만들고, 데이터베이스도 벡업한뒤에

 

새로만든 계정으로 옮겨서 똑같이 복구를 했는데요. 처음 보여지는 싸이트까지는 복구가 완료된거 같은데요.

로그인해서 관리자메인을 눌러보니까 관리자메인 페이지의 메뉴들은 잘 나오는데 메뉴 아랫부분에 보여지는 페이지부분이 빈페이지로 나오면서 아래와 같은 에러문구를 보이거든요.

 

윗쪽에 보이는 관리자 메뉴들을 클릭해서 눌러보면 관련 내용은 또 정상적으로 나오고요.

처음 관리자 메인을 눌렀을때 보여지는 과리자 메인페이지에서 윗쪽 메뉴는 정상적으로 보이는데 아랫부분에 이런 에러 메시지가 뜨고 빈페이지가 나오는 상태네요

 

ession #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'disparar3.a.no' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

이 질문에 댓글 쓰기 :

답변 3

DB 쿼리문의 Group by 문에 문제가 있다는 의미입니다.

전 서버 환경에서는 해당 내용이 나타나지 않았고, 현 서버 환경에서 해당 내용이 나타난 이유는..

전 서버 myql DB (환경설정)에서는 해당 Group by 문 문법을 지원을 했고,

현 서버 mysql DB (환경설정)에서는 해당 Group by 문 문법을 지원하지 않아서일 가능성이 큽니다.

찾아본 바로는  mysql DB 환경설정을 바꾸는 방법이 있다고 합니다.

 

추측으로는.. 지금 소스에 적용된 쿼리문이 일반적인 환경에서 잘 동작하지 않을 가능성이 큰 쿼리문입니다.

보통  group by 절에 집계할 칼럼명이 적어져 있다면 select 문에도 있어야 됩니다.

본문의 에러내용은 group by 절에 사용된 칼럼  'disparar3.a.no'  가 select  문에는 없다는 내용입니다.

일반적인 group by 문 예제 - 

SELECT COUNT(CustomerID), Country

FROM Customers

GROUP BY Country;

 

즉 방법은 크게 2가지입니다.

mysql DB 환결성정을 변경하는 방법과 문제가 되는 쿼리문을 일일이 변경하는 방법입니다.

1) mysql DB 환경설정을 변경하는 방법

my.cnf 에 [mysqld] 영역 아래

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

추가 후 재기동하는 방법인데..

호스팅 환경에서는 직접 mysql DB  의 환경설정을 바꾸거나 요청하기는 어려울 것으로 생각됩니다.

 

소스에서 mysql DB 연결을 하는 공통파일이 있을 것입니다.

그 파일 소스에서 DB 연결 구문 후에, 다음과 같은 쿼리 실행 구문을 추가하면 해결될 가능성도 있습니다.

mysql_query("set session sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';");

 

2) 해당 에러가 나오는 쿼리문을 수정해 줍니다.. (ession #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column ..)

group by 절에 나오는 칼럼명이 select 절에도 나오게 수정을 해야 됩니다.

 

1)의 방법 보다는 2)의 방법을 추천합니다.

 

※ 참고글입니다. - https://stackoverflow.com/questions/34115174/error-related-to-only-full-group-by-when-executing-a-query-in-mysql/39251942

 

직접 해결이 어려운 경우에는, 제작의뢰 게시판에 의뢰를 검토해 보실 수 있습니다. https://sir.kr/request

와 내공이 장난 아니신거 같네요. ㄷㄷㄷㄷ
사실 초보자인 제가 내용을 봐도 대략적인 감이 그렇겠구나 할뿐... 100%이해하기가 힘들다고 생각되어
,좀아까 이 내용을 사진으로 찍어서 호스팅직원분에게 보여드리고 장시간의 통화끝에 해결이 되었습니다. 정말 정말 고맙습니다.
대박이네요

운영중인 사이트를 새로 하나 복사 하였다는 말씀인가요?

 

새로운 호스팅에 파일 올리고 데이터베이스 올린 후 /data/dbconfig.php 파일 내 데이터베이스 정보를 갱신 하였나요?

 

갱신 후 /data 폴더 및 그 하위 폴더 및 파일들 권한을 707 로 수정하였나요?

바쁘신데도 불구하고 답변 감사합니다.
네, 기존 서비스하던 싸이트를 압축해서 복사떠서 새로운 계정에 옮겼거든요.
권한설정은 다 했었고요. 데이터베이스 정보 갱신 이라는 말씀을 듣고 아차 싶었습니다.
계정이 바뀌면 전부다 바꿔줘야 되는거 같네요.
큰도움이 되었습니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 123,660 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT