묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
회원가입시나 수정시 닉네임/ID /E-mail 은 중복체크를 하자나요 . 이름도 가능할까요?
2005.03.31 14:13
회원가입시나 수정시 닉네임/ID /E-mail 은 중복체크를 하자나요 . 이름도 가능할까요?
$lang->msg_exists_nick_name = \
퇴근후 집에가서 다시 차근히 생각해봤습니다.
php에러가 DB(MySQL)쪽에서 나는 문제가 확실하다고 생각하여
DB쪽 에러 로그를 확인했습니다.
1) 먼저 MySQL 데몬을 Shutdown합니다.
mysqladmin -uroot -p shutdown
2) cd /mysql데이터베이스 장소로 이동
3) HOSTNAME.err 파일 (hostname은 본인 서버네임)을 열어보면
err 코드가 나옵니다. 아래 저의 경우과 같이
050331 14:18:09 D:\My_Web\SpaceTag\server\mysql\bin\mysqld-max-nt.exe: Can't open file: 'zetyx_group_table.MYI'. (errno: 145)
위 에러코드 145번이고 내용은 zetyx_group_table.MYI 파일이 깨진것입니다.
복구는 해당파일이 있는 DB디렉토리(/db_name/data) 안으로 이동하여 아래 명령어를 쳐줍니다.
4) myisamchk zetyx_group_table.MYI
또는
mysqlcheck -u아이디 -p비번 --auto-repair -B 복원할 DB명
그러면 테이블 체크와 복구가 이루어 집니다.
저같은 경우 DB오프라인으로 myisamchk로 했는데도 복구가 않되서
DB온라인상태에서 mysqlcheck 를 돌렸더니 복구가 됬습니다.
복구가 완료되면 MySQL을 재시작하고 웹접속을 하여 확인해보시면 해결완료!~ ^^*
왜 테이블이 깨졌는지 원인을 생각해보니
제로보드 관리자 메뉴에서 [그룹설정] 에서 [게시판 상단에 출력할 내용] 을 수정하고 [확인]을 누를때 뭔가 "변경이 않됬다는" 메세지가 나왔는데 그때 DB가 깨졌던것 같습니다.
다른 분들은 종종 어느날 갑자기 정전이 되거나 하드디스크가 꽉차거나 하여 데이터가 깨지는 수도 있겠지요.
---------------------------------------------------------------------------------
아래는 네이버 검색에서 찾아보니 복구방법을 정리해주신것을 참고했습니다.
블로그 주소 : http://blog.naver.com/rosekingdom.do
http://blog.naver.com/post/postView.jsp?blogId=rosekingdom&logNo=60001322052&categoryNo=6&viewdate=&cpage2=2&cpage=1
복구방법
myisamchk 라는 것이 있다.
# myisamchk -r TEST.MYI
참고) man myisamchk
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
어느날 아침 로긴이 안되거나 혹은 게시판에서 데이터 베이스 엑세스를 할수 없습니다.. 이런 메세지를 볼수 있다. 난감하기 그지 없다... 어떻게 극복을 할것인가... ?
데이터 베이스는 항상 깨지기 마련이다. 1년은 운영한다면.. 적어도 1~2회 정도는 화일을 열수 없습니다.
에러 메세지 :
ERROR 1016: Can't open file: 'xxxxxx.MYD'. (errno: 145)
만약 /usr/local/mysql/var/데이터 베이스에 들어 가면 각각의 .......
--
myisamchk 복원 안되는게 몇가지 있는데, 두번째 mysqlcheck 는 100% 되더군요.
그외 비정상적으로 복원되는 경우는 DB수정에 의한 경우 밖에 없더군요..^^;
--
문제는 왜 이런 오류가 발생하는지가 궁금하네요.
글고 저같은 경우는 위 방법이 복잡하여...`ㅡ`;;
mysqlcheck -u아이디 -p비번 --auto-repair -B 복원할 DB명
을 사용합니다^^
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
/usr/local/mysql/data/
*.FRM : 테이블 정보
*.MYI : 인덱스 정보
*.MYD : 데이타 정보
#myisamchk 옵션을 보면
# -r -o로 복구가 안되면다 -f 옵션을 이용한다.
-f, --force Overwrite old temporary files.
#복구
-r, --recover Can fix almost anything except unique keys that aren't unique.
#안전하게 복구
-o, --safe-recover Uses old recovery method; Slower than '-r' but can
handle a couple of cases where '-r' reports that it
can't fix the data file.
#데이터 정렬 및 속도 증가 -R1 저도 주면 될듯 싶네요
-R, --sort-records=#
Sort records according to an index. This makes your
data much more localized and may speed up things
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
You should also check your tables regularly during normal system operation. At MySQL AB, we run a cron job to check all our important tables once a week, using a line like this in a `crontab' file:
35 0 * * 0 /path/to/myisamchk -s /path/to/datadir/*/*.MYI
This prints out information about crashed tables so we can examine and repair them when needed.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
myisamchk , 디비 복구에 관련된 url 들
http://www.mysql.com/doc/en/myisamchk_repair_options.html
http://database.sarang.net/database/mysql/doc/mysql-3.23.32/manual-split/manual_Maintenance.html
http://www.mysql.com/doc/en/Repair.html
http://linuxpro.pe.kr/document.files/man/mysql_3.23.28/manual_Table_types.html