티스토리 뷰

mariaDB

apmsetup mysql 한글깨짐

xemaker 2017. 1. 26. 20:27
gubun 오름차순idtimename1name2now
수정hockey7179057912:00애너하임애드먼턴2017-01-25 19:46:20
수정hockey5000068011:30콜로라도벤쿠버2017-01-25 19:46:20
수정hockey0961201410:00뉴욕 레인저스필라델피아2017-01-25 19:46:20
수정hockey9281543609:00디트로이트토론토2017-01-25 19:46:20


apmset 설치후 php 코딩을 해서 db에 넣는데 한글이 깨졌다. 웹브라우저로 출력하면 한글이 안깨지고 잘나왔다.


그래서 웹 서핑 작렬!


apmsetup을 설치후 루트에 보면 php.ini 파일이 있다.

아래와 같이 되어 있는 부분을


;default_charset = "iso-8859-1"

앞의 ; 주석을 없애고 아래와 같이 쓰고

default_charset = "utf8"

서버 재시작을 했다.

안됐다.

다시


그러고 보니 예전에 했던것이였다. 우선 xe나 그누보드등 웬만하면 현재 사용하고 있는 것들은 utf8 기반이다. 하지만 apmsetup 설치후 mysql은  기본값이 latin1 로 되어있다. 


DB와 출력 플랫폼간의 인코딩이 서로 다른경우 속성(인코딩) 명령어를 일일이 명령어로 지정하여 사용해야 하기 때문에, 매우 번거롭다. 따라서 mysql의 인코딩 설정은 어떤 의미로는 필수적인 단계이다.


기본 비번은 root / apmsetup 이니 알아두도록 하고 다음과 같이 mysql에 접속한다.


C:\> mysql -uroot -papmsetup


mysql> show variables like 'c%';   를 입력하면 현재 적용되어있는 캐릭터셋이 아래와 같이 리스트로 뜬다.


Microsoft Windows [Version 6.1.7601]

Copyright (c) 2009 Microsoft Corporation.  All rights reserved.


C:\Users\Administrator> mysql -uroot -papmsetup

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 12

Server version: 5.1.41-community MySQL Community Server (GPL)


Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.


mysql> show variables like 'c%';

+--------------------------+--------------------------------------------+

| 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       | C:\APM_Setup\Server\MySQL5\share\charsets\ |

| collation_connection     | latin1_swedish_ci                          |

| collation_database       | latin1_swedish_ci                          |

| collation_server         | latin1_swedish_ci                          |

| completion_type          | 0                                          |

| concurrent_insert        | 1                                          |

| connect_timeout          | 10                                         |

+--------------------------+--------------------------------------------+

14 rows in set (0.00 sec)


mysql>


이렇게 기본값이 latin1 이다.


 C:\APM_Setup\Server\MySQL5\data 에서 my.ini 파일을 편집기로 오픈한다.


[mysqld]

init_connect=SET collation_connection = utf8_general_ci

init_connect=SET NAMES utf8

default-character-set=utf8

character-set-server=utf8

collation-server=utf8_general_ci


[mysql]

default-character-set=utf8


저장이 되었으면 현재 my.ini파일을 복사하여 APM_setup\Server\MYSQL5에 붙여넣기 한다.


그러면 


C:\APM_setup\Server\MYSQL5\data 폴더에 my.ini 한개 존재


C:\APM_setup\Server\MYSQL5 폴더에 my.ini 한개 존재 


이렇게 총 두개의 my.ini가 존재 할 것이다.


data 하위에 my.ini가 없으면 APMSETUP모니터가 작동하지 않기때문에 이렇게 조치 하는것이다.




수정이 끝났으면 mysql을 재시작 해야 하는데


ㄱ. APM프로그램에서 stop을 누른뒤 다시 Start를 누르거나 (추천)


ㄴ. mysql> quit; 


    c:\>mysqladmin -uroot -papmsetup reload    라는 커맨드로 입력해도 된다.

Microsoft Windows [Version 6.1.7601]

Copyright (c) 2009 Microsoft Corporation. All rights reserved.


C:\Users\sdk> mysql -uroot -papmsetup

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 460

Server version: 5.1.41-community MySQL Community Server (GPL)


Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.


mysql>  show variables like 'c%';

+--------------------------+--------------------------------------------+

| 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       | C:\APM_Setup\Server\MySQL5\share\charsets\ |

| collation_connection     | utf8_general_ci                            |

| collation_database       | utf8_general_ci                            |

| collation_server         | utf8_general_ci                            |

| completion_type          | 0                                          |

| concurrent_insert        | 1                                          |

| connect_timeout          | 10                                         |

+--------------------------+--------------------------------------------+

14 rows in set (0.05 sec)


  c:\>mysqladmin -uroot -papmsetup reload  


이렇게 하고 다시 

mysql>  show variables like 'c%';

해봤는데 일부만 utf8로 바뀌어 있고 일부는 바뀌지 않고 latin1으로 계속 남아 있었다.


그래서 APMSETUP Monitor에서 STOP후 START 하니 위에 처럼 모든게 utf8로 바뀌어 있었다.



그리고 나서도 해봤는데 한글이 또 깨져있었다. 아래처럼 php 에서 한번더 해줘야 한다.


mysqli_set_charset($mysqli ,"utf8" );



댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함