CI 묻고 답하기

제목 간헐적으로 DB Connect 에러가 납니다
글쓴이 구치리 작성시각 2013/06/05 14:45:51
댓글 : 6 추천 : 0 스크랩 : 0 조회수 : 18502   RSS
Unable to select the specified database:
Filename: C:\rwapm\www\optimus_a\system\database\DB_driver.php
Line Number: 140

db
 설정은 다음과 같습니다

$db['default']['dbdriver'] = 'mssql';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;

CI 버전은 Version 2.1.0입니다
코드를 바꾸지 않았는데 db 접속 성공과 실패가
운에 결정됩니다...
거의 됩니다,
가끔 안되네요..

5분정도 클릭질을 하면 한번정도 에러 뜹니다.
근데 5분에 1번 뜨면 사이트를 이용하는 사람들이라면
한번씩은 에러를 본다는 이야기가 됩니다,

포럼 검색결과로 pconnect, db_debug 설정을 바꾸어 테스트를 해도
결과는 같습니다
오히려 pconnect 를 false 로 할 경우 더 빈번하게 에러가 납니다.
db_debug와 pconnect 를 꺼놓으니 db->result_array() 함수에서 에러가 난다고 뜨네요,,,
아마 쿼리를 수행하기 위해 서버에 접속하는 과정에서 에러가 났겠죠...

windows 2008 r2 서버를 쓰고요
서버 환경은 rwapm 을 이용해서 구성했고...
mysql도 동시에 돌아가고 있기는 합니다.
하지만 그거랑은 상관없는 문제겠죠...
부하는 거의 없습니다. 테스트 서버라...

data 를 너무 많이 가져다 쓰는지 고민도 해봤는데
아직은 초기단계라 한 100개 이내로 select 해서 쓰는 것 같습니다.
여기서 에러가 나면.. 뭐.. 음...

code igniter 쓰기 전에도 같은 서버 환경에서 mssql 로 작업을 했었는데...
이런 경우는 처음이네요...
code igniter 의 문제인가 싶은 생각이 듭니다..

혹시 해결책을 아시면 알려주시면 정말정말 감사하겠습니다.
 
 다음글 Array Post data를 DB에 insert, u... (2)
 이전글 frameset으로 나눠진 페이지를 호출하려면? (1)

댓글

변종원(웅파) / 2013/06/05 15:15:47 / 추천 0
ci가 의심되시면 일반 php환경에서 mssql 연결환경 만들어서 테스트 해보시구요.

5분내내 클릭을 하신다는 건데 mssql connect가 동시에 몇개까지 연결가능한지 찾아보세요.

mysql서버 사양에 따라 스트레스 테스트 하다보면 too many connect 나옵니다.
구치리 / 2013/06/05 15:28:32 / 추천 0
동시 연결 수 제한은 없는데요...0으로 설정
에러가 too many connect 가 나는건 아니고
계속 맨처음과 똑같은 에러가 납니다.

만들어 놓은 모델들을 기본 mssql 함수로 바꿔볼까 고민하고 있습니다.
사실은 하기 싫어요 ㅠㅜ active record 아주 편하게 사용하고 있었거든요..
또 왜 이런 에러가 나는지 참 애매모호하기도 하고..
답답하네요 ㅠㅜ

문제는 해결은 해야겠고... 아름ㄴㅇ름ㄴㅇㄹ
양승현 / 2013/06/05 16:17:59 / 추천 0
커넥션수 문제라고만 생각되네요. 횡걸리는 부분도 아닐꺼고 이런문제 생기면 참 골치가..
구치리 / 2013/06/05 16:28:17 / 추천 0
 이게 정말 애매하네요...
으음...
사실 코드이그나이터 문제가 아닌것 같기도 해요..
서버상태를 타는것 같기도 하고...

왜냐면 도중에 다시 테스트를 해보는데(아무것도 안바꾸고)
10분동안 에러가 하나도 안나네요..

아 정말... 의심이 여기저기 하늘끝까지 가네요..
서버를 밀어버릴까.........
/ 2013/06/06 14:37:07 / 추천 0
 일반 php코드로 테스트를 해보시는게 좋을듯 하네요...


제 생각엔 99퍼 mysql 문제라고 생각됩니다만..

일단 mysql 서버에서 현재 연결된 사용자 정보를 먼저 확인하시고

연결이 이상한 부분이 있는지 체크를 해보세요


접속제한이 없는데도 그정도 연결이 발생한다면

어디선가 잘못된 연결을 계속하고 있거나

쿼리가 끝난이후에도 커넥션을 계속 물고 있는것이라든지 그런게 보일 것 같네요

구치리 / 2013/06/07 01:07:57 / 추천 0
저도 서버쪽의 문제라고 생각하고 접근하고 있습니다.
서버관리하는 요령도 좀 익혀야 할것같아요.

답답함에 질문을 올렸었는데
답변 감사드립니다.