티스토리 뷰

1.mysql 한글인코딩 UTF-8 해결법


현재 게시판 관련된 포스팅중, mysql에 값이 한글로 들어가면 깨지는 현상이 있다.
일단 이것들의 상황을 파악해 보기위해서 

1
kgh-2:bin kgh$ sudo ./mysql -p
cs

1)mysql을 실행하자. 비밀번호를 입력후 mysql진입하여 현재 mysql의 인코딩이 어떻게 되어있는지 확인

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
32
33
34
35
36
37
38
39
40
41
mysql> show variables like 'c%';
 
+--------------------------+-----------------------------------------------------------+
 
| Variable_name            | Value                                                     |
 
+--------------------------+-----------------------------------------------------------+
 
| character_set_client     | utf8                                                      |
 
| character_set_connection | utf8                                                      |
 
| character_set_database   | latin1                                                    |
 
| character_set_filesystem | binary                                                    |
 
| character_set_results    | utf8                                                      |
 
| character_set_server     | latin1                                                    |
 
| character_set_system     | utf8                                                      |
 
| character_sets_dir       |  |
 
| check_proxy_users        | OFF                                                       |
 
| collation_connection     | utf8_general_ci                                           |
 
| collation_database       | latin1_swedish_ci                                         |
 
| collation_server         | latin1_swedish_ci                                         |
 
| completion_type          | NO_CHAIN                                                  |
 
| concurrent_insert        | AUTO                                                      |
 
| connect_timeout          | 10                                                        |
 
| core_file                | OFF                                                       |
 
+--------------------------+-----------------------------------------------------------+
cs
이런식으로 설정되어있는데, database의 값이 latin1으로 설정되어 있는것을 알 수 있다. 이것을 해결하기 위해서 
1
sudo vi /etc/my.cnf 
cs

설정으로 들어가서 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[mysqld]
 
character-set-server=utf8
 
collation-server=utf8_general_ci
 
init_connect=SET collation_connection=utf8_general_ci
 
init_connect=SET NAMES utf8
 
[client]
 
default-character-set=utf8
 
[mysql]
 
default-character-set=utf8
cs


의 코드를 넣어주면 된다고 한다. 하지만,,,? 나는 이방법이 먹히지않았다.


2) 현재 Spring 프로젝트에서 JDBC 설정 파일인 context.xml 파일(톰캣) 에 있는 소스에서

1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
<Resource auth="Container"
            driverClassName="com.mysql.jdbc.Driver"
            name="jdbc/SpringDS"
            type="javax.sql.DataSource"
            password="root"
            maxWait="5000"
            username="root"
            url="jdbc:mysql://localhost:3306/mvc_board?characterEncoding=UTF-8"
            maxActive="50"
            
       
    />
 
1
2
3
빨간색부분을 추가해주었는데, UTF-8 문제가 완전히 해결되었다. 한글이 데이터베이스에 잘 들어가고, 웹페이지에도 정확히 출력되는것을 확인 했다.
 
위에 cnf파일이 잘안되시는분들은 이것을 활용하여서 해결해보시면 될것같다. 1시간동안 삽질을했다..
cs
cs




공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
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
글 보관함