아파치에 업로드시킨 후, 웹 브라우저로 접속을 해보았다.
그런데 mysql DB로부터 데이터를 읽어오는데 문제가 발생했다.
영어나 숫자로 된 게시물은 정상적으로 출력되는 반면에,
한글로 된 게시물은 비정상적으로 출력되었다.
즉, 한글을 인식하지 못하여 물음표로만 출력되는 것이었다.
뭔가 인코딩 문제라 생각이 들어 구글을 통해 열심히 찾아보았다.
지금 사용하고 있는 우분투 버전은 16.04 최신 버전인데 이것때문에 그럴까?
그것은 아니었다. mysql에 설정이 latin1이 기본적으로 설정되어 있기 때문이라는것을 알게 되었다.
이것을 어떻게 utf8로 변경할까?
에서 해답을 알 수 있었다.
그 전에,
많은 블로그들이 my.cnf를 고치면 된다고들 했다. (설치 경로 : /etc/mysql)
하지만, 버전이 올라가면서 이 파일에서는 그냥 includedir로 다른 파일을 불러들이는 용도로 변했다.
그래서, 두 가지을 각각 찾아가서 열어보았다.
그 결과 밑에 있는 경로 /etc/mysql/mysql.conf.d/에 있는 mysql.cnf가 중요한 파일이다.
이 파일을 열면
$ sudo nano /etc/mysql/mysql.conf.d/mysql.cnf
또는
$nano /etc/mysql/my.conf
뭔가 샵#이 붙은 내용이 줄줄이 나오는데, 그 중에서
[mysqld] 이 부분을 찾아서, 맨 마지막에 캐릭터셋을 지정하주면 된다.
character-set-client-handshake=FALSE
collation-server=utf8_general_ci
character-set-server=utf8
그 다음 재부팅~
sudo /etc/init.d/mysql restart
이렇게 복붙하면 utf8로 설정이 되어, 정상적으로 한글이 나오게 된다.
짜잔.
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////
블로그에 적어놓은 것을 잊고, 한참을 다시 검색하였다.
이번에는 우분투14.04에서 환경을 설정하는 중인데 우분투16.04와 몇 가지 차이점이 있다.
위에서 언급한것과 같이 14.04에서는
/etc/mysql/my.conf에서 직접 수정이 가능하다(16.04의 경우 Include의 기능만 갖는다)
다음과 같이
[client]에도,
default-character-set=utf8 추가
[mysqld]에는 이렇게, 여러개 추가
character-set-server=utf8
collation-server=utf8_general_ci
init_connect=SET collation_connection=utf8_general_ci
init_connect=SET NAMES utf8
[mysqldump]에도,
default-character-set = utf8 추가
[mysql]에도,
default-character-set=utf8 추가
해주면 mysql 설정이 모두 utf-8로 변경이 되었다는 것을 mysql> status를 통해 볼 수 있다.
하지만, 사이트는 여전히... 물음표다. Mysql은 모두 변경되었는데...무엇이 문제일까?
음...
한참을 검색하다가 많이 눈에 익은 사이트에 들어와서 정답을 알게 되었다.
그 사이트가 바로 내 블로그다ㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎ
내가 적어두고 다른데가서 삽질하다니.... 삽질 안 하려고 적어두고는 다른데가서 삽질을...
내가 입력한것과 이전에 작성해둔 코드와 비교하니 한 가지만 없었다.
바로바로바로바로
character-set-client-handshake=FALSE
이것!!!!!!!!!!!!
이것을
[mysqld] 하단에 넣어주면~?
???????????
?????????????????
????????????????????????
물음표를 좋아하던 사이트가 !
한글로 변환되어 보여지는것을 알 수있다.
정리.
[mysqld]에는 총 5개를 추가해준다.
character-set-client-handshake=FALSE
character-set-server=utf8
collation-server=utf8_general_ci
init_connect=SET collation_connection=utf8_general_ci
init_connect=SET NAMES utf8
'서버 > AWS' 카테고리의 다른 글
[AWS] Mac에서 AWS 인스턴스 접속하기 (0) | 2017.12.19 |
---|---|
[AWS] 우분투 환경에서 파일 삭제하는 명령어 rm (0) | 2017.08.12 |
Apache2 서버에서 업로드 파일 에러 발생 시, 확인 로그 (0) | 2017.03.31 |
[AWS] Putty로 AWS 인스턴스 접속하기 (0) | 2017.03.16 |
[AWS] puttygen 사용법!! .pem 파일 .ppk파일로 변환하기 (0) | 2017.03.16 |