운영체제/MySQL

Source 사용시 한글 깨짐 현상

에스테반 2012. 10. 30. 13:55

출처 :: http://ucnn.tistory.com/37

---------------------------------------------------------------------------------------------------


텔넷으로 로컬 접속에서 작업증 한글깨짐에 대한 설명입니다.

mysql> show full columns from zipcode;
+---------+-------------+-----------------+------+-----+---------+-------+---------------------------------+---------+
| Field | Type | Collation | Null | Key | Default | Extra | Privileges | Comment |
+---------+-------------+-----------------+------+-----+---------+-------+---------------------------------+---------+
| NO | int(5) | NULL | | PRI | 0 | | select,insert,update,references | |
| ZIPCODE | varchar(7) | euckr_korean_ci | YES | | NULL | | select,insert,update,references | |
| SIDO | varchar(4) | euckr_korean_ci | YES | | NULL | | select,insert,update,references | |
| GUGUN | varchar(13) | euckr_korean_ci | YES | | NULL | | select,insert,update,references | |
| DONG | varchar(43) | euckr_korean_ci | YES | | NULL | | select,insert,update,references | |
| BUNJI | varchar(17) | euckr_korean_ci | YES | | NULL | | select,insert,update,references | |
+---------+-------------+-----------------+------+-----+---------+-------+---------------------------------+---------+
6 rows in set (0.00 sec)

mysql> source zipcode.sql
mysql> select * from zipcode Limit 3;
+-------+---------+--------+-----------+---------------------+-------+
| NO | ZIPCODE | SIDO | GUGUN | DONG | BUNJI |
+-------+---------+--------+-----------+---------------------+-------+
| 45001 | 325-842 | 충남 | 서천군 | 한산면 동산리 | |
| 45002 | 325-843 | 충남 | 서천군 | 한산면 동지리 | |
| 45003 | 325-842 | 충남 | 서천군 | 한산면 마량리 | |
+-------+---------+--------+-----------+---------------------+-------+
3 rows in set (0.01 sec)

==== 현재 터미널 설정과 불러오는 파일 문자셋이 같지 않으면 글이 깨집니다.
mysql> drop table zipcode.sql

mysql> set names euckr;
mysql> source zipcode.sql

mysql> select * from zipcode Limit 3;
+-------+---------+------+--------+---------------+-------+
| NO | ZIPCODE | SIDO | GUGUN | DONG | BUNJI |
+-------+---------+------+--------+---------------+-------+
| 45001 | 325-842 | 한글 | 한글 | 한글 | |
| 45002 | 325-843 | 한글 | 한글 | 한글 | |
| 45003 | 325-842 | 한글 | 한글 | 한글 | |
+-------+---------+------+--------+---------------+-------+
3 rows in set (0.00 sec)

mysql>

======
업한 글이 깨지는 경우
주로 만든 sql파일 저장 시 문자셋, DB에 집어 넣을때( mysql 콘솔, php 인서트시 ), DB 설정시 문자셋 이 세가지 가 맞지 않으면 깨집니다.


깨지는 예)
만든 sql파일 인서트시 접속 터미널 문자셋과 생성 DB collation이 맞지 안으면 깨짐
만든 sql파일 저장시 설정한 문자셋과 DB collation이 맞지 안으면 깨짐