드루팔의 MySQL 에러 user error: Can't create/write to file /tmp 폴더 관련

참 오랜만에 다시 글을 씁니다.

요즈음 바빠서 드루팔로 작성한 여러 사이트를 제대로 관리하지 못하고 있었는데
어느 순간부터 몇몇 사이트에서 아래와 같은 에러가 나기 시작했다.

user error: Can't create/write to file '/tmp/#sql_1104_0.MYI' (Errcode: 13)

그러면서 첫 화면 혹은 일부 노드에서 mysql 과 관련된 에러가 잔뜩 표시됐다.
당연히 유저들에게 보기도 않좋고 PV도 뚝 떨어져서 긴급대응했다.

인터넷 검색해보니 여러 원인과 해결책들이 상존했지만,
그 어느 하나 손쉽게, 시원하게 문제가 해결되지는 않았다.
그런데 아래 아주 간단한 방법으로 해결해서 기록해 둔다.

원인은 PHP 관련 임시 쓰기 폴더의 중첩현상으로 보이는데,
여러 사이트의 동시 운영이 문제일 수도 있겠다 싶어서...

관리자로 로그인한 후,
admin/settings/file-system 메뉴(관리 > 사이트 설정 > 파일 시스템)로 가서
임시자료방 (혹은 임시폴더, temporary folder)를 PHP 공용 임시폴더에서
files/tmp 로 변경, 저장했다.

이렇게 함으로써 임시 쓰기 폴더의 중첩현상을 없앤것일까?
문제가 해소된 것으로 보인다. 하지만 정확한 원인을 모르니 재발할 수도 있다.

급한 불은 껐지만 다시 살펴보고 정공법으로 해소할 날을 기대해 본다.
참고로 상당수의 드루팔 사이트 운영자가 이 현상을 겪었다고 한다.

Your rating: None 평균 : 4 (2 votes)

댓글

드루팔을 운영 중인

드루팔을 운영 중인 머신의 하드디스크 용량이 부족한 경우에도 발생할 수 있다고 합니다.

MySQL의 환경설정 파일

MySQL의 환경설정 파일 my.cnf에 있는 tmpdir의 폴더 패스를 다시 점검해 보는 것도 좋다.
보통은 이상 없는데 해당 패스가 있는 하드디스크가 물리적으로 이상이 있는 경우에도 나는 에러이다.
* 결국 최근에는 my.cnf의 tmpdir를 다른 하드디스크가 있는 곳으로 변경했더니 문제가 없어졌다.

그래도 문제가 계속

그래도 문제가 계속 된다면, 아래 정보는 어떨까?

ファイル記述子(FD)の上限は、ulimitスクリプトで-nを付けて指定するか、mysqldの起動時に--open-files-limitで指定できます。
http://forum.tsukaeru.net/viewtopic.php?t=4160&sid=bcf3ce28344b04b3c1eed...