Media Log

이 글에서는 오토셋 4.2.0 버전을 이용한 MySQL 연동 작업시 참고할 사항을 제공합니다.

1. MySQL 서버의 모든 설정은 기본적으로 UTF-8 로 셋팅되어 있습니다.

2. MySQL 설정 파일은 윈도우 설치 폴더 안의 my.ini 파일입니다.
오토셋을 통해 제어되는 MySQL 서버는 이 파일을 참조합니다.

3. 미리 생성된 DB 는 아래와 같으며, 적용된 콜레이션(Collation)은 각 DB 별 다릅니다.
- mydb : latin1_swedish_ci (기본값)
- mydb_utf8 : utf8_general_ci
- mydb_euckr : euckr_korean_ci

4. 사용자 계정 정보
- root : MySQL 서버 관리용 ID , 삭제 불가 , 초기 암호는 autoset
- sa : 일반 사용자 , 불필요시 삭제 가능 , 초기 암호는 autoset

5. 사용자 계정별, DB 연결 정보
- root : 모든 DB 에 접근 가능
- sa : mydb , mydb_utf8 , mydb_euckr  / 앞의 3개의 DB만 접근 가능

6. 기타 설정 사항
- 소켓 접속시 사용되는 socket 파일의 위치 (오토셋 설치 폴더\Server\temp\mysql.sock)
- MySQL 서버 설치 경로 (오토셋 설치 폴더\Server\mysql\)
- MySQL 데이터 보관 경로 (오토셋 설치 폴더\Server\mysql\data\)
- 에러 메시지 표시 언어 : 한국어

7. PHP 와 연동 시, 주의할 점
PhpMyAdmin 으로 확인하면, 분명 한글 데이터가 정상적으로 삽입되었지만
실제로 PHP 와 연동시, 한글 깨짐(물음표로 나오는 현상)이 나타나는 경우가 있습니다.

이것은 문자셋이 지정되지 않았기 때문에 발생한 것입니다.

mysql_connect 함수 호출 이후, mysql_query 함수를 이용하여
set names euckr 쿼리를 실행해보시기 바랍니다.
그러면, 한글이 정상적으로 나오게 됩니다.
관련된 예시가 4.2 버전대에는 홈 디렉토리(public_html)에 보시면,
"PHP_MySQL_Sample" 폴더가 있습니다.
해당 폴더의 PHP 코드는 DB 에 테이블 생성하고, 자료를 입력/출력하는 예제가 있습니다.
PHP와 MySQL 관련 작업시 참고하시면 좋겠습니다.

ANSI(EUC-KR)이 아닌 UTF-8로 PHP파일을 인코딩했고,
DB도 UTF-8문자셋을 사용하는데 한글이 제대로 표시되지 않는 경우에는
set name euckr; 대신에 set names utf-8; 을 실행해보시기 바랍니다.

<?php
$conn = mysql_connect ("localhost", "sa", "autoset");
mysql_query("set names euckr");
mysql_select_db("mydb_euckr");
?>

8. PHP 외, 다른 언어와 연동시... 혹은 MySQL 콘솔창에서 한글이 깨진다면?
7번과 같은 맥락의 문제입니다.
MySQL 접속 이후, 문자셋 쿼리(set names )를 실행함으로써 문자셋을 맞춰주시면 됩니다.

Trackback URL : http://blog.sorpyo.com/trackback/174