본문 바로가기

db23

Connecting DB : File '/usr/local/mysql/share/mysql/charsets/?.conf' not found (Errcode: 2) Connecting DB : File '/usr/local/mysql/share/mysql/charsets/?.conf' not found (Errcode: 2) Character set '#192' is not a compiled character set and is not specified in the '/usr/local/mysql/share/mysql/charsets/Index' file PHP + MySQL 연동시 자주 발생하는 오류로써 MySQL에 문자셋 설정 오류 입니다. 오류 메시지 내용만 보면 ?.conf 문자셋 파일이 없다 그런 내용입니다. 해결 방법을 찾아서 이것저것 해보았지만 해결되지 않더군요. 그래서 오류 메시지가 알려준데로 MySQL에서 이용하는 문자셋중 latin1.xml 파일.. 2010. 12. 9.
MySQL 5.x 설치후 기존 utf8 자료 이전시 한글 깨짐 증상 해결 my.cnf 수정 Aapache 2.x, PHP 5.x, MySQL 5.x 설치후 서버 이전을 끝내고 사이트 접속해보니 한글이 모두 ㅁㅁㅁ 특수기호들로 깨져 버리더군요. 원인을 알아 보니 mysql 기본 설치시 기본 문자셋이 utf8이 아니라서 생긴 문제 이더군요. 웹소스는 utf8 이며 기존 DB 자료 역시 utf8인데 mysql 기본 문자셋은 다른 문자로 되어 있어서 생긴 문제 였습니다. 다행이도 해결 방법이 mysql 다시 설치 하는 것이 아니라 /etc/my.cnf MySQL 설정 파일만 수정해 주면되었습니다. 자신의 기본 문자셋이 어떻게 되어 있는지 확인 해 보실려면 mysql 접속후 다음과 같이 확인 해 보세요! mysql> SHOW VARIABLES LIKE 'character_set%'; +---------.. 2010. 12. 7.
[클래스] MySQL 테이블 복구 repair 명령어, SQL Error: Can't open file: 'sessions.MYI'. (errno: 145) 어느날 갑자기 MySQL 테이블 하나를 읽을려고 할때 다음과 같은 메시지가 나타날 경우 SQL Error: Can't open file: 'sessions.MYI'. (errno: 145) 테이블이 오류가 난것입니다. 원인은 하나의 테이블에 지속적으로 접속자가 너무 많이 connection이 된 경우 혹은 MySQL 기록중에 DB서버가 강제 종료 혹은 리부팅 되는 경우 깨지는 경우가 종종 발생 합니다. 이처럼 비정상적으로 종료된 테이블인 경우 마지막 처리 과정을 복구해서 정상 동작 하도록 하는 명령어가 있습니다. 먼저 해당 테이블 DB에 접속합니다. mysql -u아이디 -p db이름 비번 : repair table tablename; 입력 혹은 그냥 엔터 또는 간단하게 한줄로 mysql -u아이디 -p.. 2010. 8. 3.
php DB 인젝션 공격 방어 인젝션 방어를 위한 처리를 하기 위해선 get, post 로 넘어오는 모든 변수중에서 DB에 사용될 변수에 대해 검수를 거친뒤에 DB에서 사용하도록 해야하나 이미 구축된 사이트에 일일이 적용하기엔 힘들 경우 아예 get, post 데이터 전체를 검사하도록 다음과 같이 구현해 봤습니다. //인젝션 공격 막기 넘어오는 변수들 모두 검사 //GET while(list($fildn1,$fildv1) = each($_GET)) { if(eregi("--",$fildv1)) { echo ""; exit; } } //POST while(list($fildn2,$fildv2) = each($_POST)) { if(eregi("--",$fildv2)) { echo ""; exit; } } 일단 인젝션 공격에 대표적인 문.. 2009. 6. 17.