세이박스

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 파일을 ?.conf 파일로 복사 해줬더니 더이상 오류가 나지 않더군요

일단 MySQL 소스 설치를 /usr/local/mysql 에 하셨다면

cd /usr/lcoal/mysql/share/mysql/charsets/
cp latin1.xml ?.conf

이렇게 하니 더이상 오류가 뜨지 않더군요.


 ▶ 최신영화, 최신 미국드라마 무료 다운로드... 

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%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |

이와 같이 latin1 등의 문자셋으로 설정 되어 있음을 확인하실 수 있습니다.

설정파일 수정은 /etc/my.cnf 파일을 수정 하시면 되며, 각 [항목] 바로 아래에 문자셋 설정을 추가 해주시면 됩니다.

# vi /etc/my.cnf

[client]
default-character-set=utf8

[mysqld]
init_connect='set names utf8'
character-set-server=utf8
default-collation=utf8_unicode_ci
skip-character-set-client-handshake
character-set-filesystem=utf8
default-character-set=utf8

[mysqldump]
default-character-set=utf8

[mysql]
default-character-set=utf8

위와 같이 추가하고 저장후 mysql 데몬을 다시 실행 해 보시면 아래와 같이 문자 기본셋이 변경 되었음을 확인 하실 수 있습니다.

+--------------------------+----------------------------------------+
| Variable_name            | Value                                  |
+--------------------------+----------------------------------------+
| character_set_client     | utf8                                   |
| character_set_connection | utf8                                   |
| character_set_database   | utf8                                   |
| character_set_filesystem | binary                                 |
| character_set_results    | utf8                                   |
| character_set_server     | utf8                                   |
| character_set_system     | utf8                                   |
| character_sets_dir       | /usr/local/mysql/share/mysql/charsets/ |
+--------------------------+----------------------------------------+

사이트 접속해보니 이제 정상으로 한글이 보이는 군요.
등록 및 수정 등 쿼리 전송시 한글 처리는 잘되는지 아직 안해봤음 ^^


 ▶ 최신영화, 최신 미국드라마 무료 다운로드...