От Ильича до Ильича
by sonnet 2006 이글루스 TOP 100 2007 이글루스 TOP 100 2008 이글루스 TOP 100 2009 이글루스 TOP 100 2010 이글루스 TOP 100 2011 이글루스 TOP 100
rss

skin by 이글루스
ruby mysql gem 문제

영향을 받는 시스템
MySQL 5.1.x + ruby(win32) 조합


증상:
Rails 2.x에서 데이터베이스에 접근하려고 하면,

ArgumentError (NULL pointer given):
(eval):3:in `each_hash'
(eval):3:in `all_hashes'
...

과 같은 증상을 일으키며, 종종 웹서버가 죽어버림.


원인:
ruby gem mysql-2.7.3-mswin32 와 MySQL 5.1.x의 client DLL인 libmySQL.dll 사이에 모종의 문제가 있음.


대책(workaround):
mySQL 5.1.x 대신 구 버전인 5.0.x에 포함된 libmySQL.dll을 구해다 ruby/bin에 복사해 넣음.


비고:
알고 보니 작년 이맘 때부터 같은 증상을 호소한 사람이 적지 않게 있던데, 얘네(gem관리자)는 왜 해결을 안 하는지 모르겠음. 내 경우엔 문제의 mysql-2.7.3 gem과 mySQL 5.1.31 DLL 조합으로 지난 3개월간 잘 쓰다가 갑자기 그제 오전부터 돌연사를 개시하는 통에, 이런 이유일 거라고는 생각도 못하고, 최근 수정한 데만 눈빠지게 들여다 보면서 이리저리 헤집느라 시간만 낭비했음. 죽으려면 차라리 처음부터 죽던가...
by sonnet | 2009/07/22 10:17 | 과학기술 | 트랙백 | 덧글(6)
트랙백 주소 : http://sonnet.egloos.com/tb/4193966
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Commented by 스트롱베리 at 2009/07/22 11:55
윈도우 환경에서 레일스 운용하는 것 자체가 마이너 중에서도 마이너인 탓이 크지 싶습니다.(먼산)
Commented by sonnet at 2009/07/23 07:09
네엡, 반면 의외로 맥에서 작업하는 사람들이 많더군요.
Commented by 스트롱베리 at 2009/07/23 09:50
일단, 요즘엔 맥OS에 RoR패키지가 내장되어 있지요. 물론 레퍼드로 올라오기 전에도 맥에서 개발하는 분들은 많았던걸 생각해보면, 레일스는 터미널 환경에서 개발하기 편해서 리눅스나 맥에서 인기 있는게 아닐까 싶습니다.

GUI 환경에서 개발해보려고 해도 딱히 맘에 드는게 없었고, 기껏해야 넷빈즈에서 Jruby로 해보는게 그나마 제일 나았던 것 같습니다.
Commented by 고어핀드 at 2009/07/22 14:06
예, 저도 이 문제가 있어서 결국 sqlite3로 옮겼습니다. 어차피 윈도우는 개발할 때만 쓰니까...

...그런데 웹 프로그래밍도 하시는 모양이군요? 암호화 쪽으로 일하시는 줄 알았는데요.
Commented by sonnet at 2009/07/23 07:11
sqlite 편리하더군요. 저도 간단한 일을 처리할 때는 bdb를 오래 썼었는데, 몇 년 전부터는 그런 용도로는 sqlite로 바꾸었습니다.
Commented by 이네스 at 2009/07/23 13:42
.... 초짜는 봐도 뭐가뭔지.

역시 현대화는 전문화. ㅡㅡa

:         :

:

비공개 덧글

<< 이전 다음 >>