흐르는 시간의 블로그...

기존 MySQL Client는 모두 default 즉 latin1으로 되어 있다.

해당 시스템들을 수정하지 않고 utf8를 함께 사용하도록 하려고 하였다.

특히 동일 DB내의 특정 테이블은 euckr로 insert 하고 해당 테이블의 내용을 다른 utf8기반의 테이블로 옮기고자 하였다.

문제는 기존 client들이 모두 latin1으로 되어 있기 때문에 utf8으로 시스템과 DB가 설정된 곳에는 정상적으로 insert가 되지 않았다.

아래의 두 링크를 참고하여 해당 문제를 해결하였다.

my.cnf의 [mysqld]에 init_connect 라인을 삽입하고 재시작하였다.

client의 character set에 따라 insert와 select가 정상적으로 되어 한글을 표시함을 확인하였다.

[mysqld]


user = mysql

character_set_server = utf8

collation_server = utf8_general_ci

init_connect=SET names binary


MySQL 5.0 으로 업그레이드 할 때 UTF-8, EUC-KR 같이 쓰는 경우 캐릭터셋 문제 해결방법, v1.3

MySQL euc-kr, latin1 문자코드 UTF-8로 컨버팅하기


C++11과 C++14를 사용하기 위해 GCC 5.4.0 버전을 인스톨 했었다.

현재 6.2버전까지 있는 것으로 보인다.


https://ftp.gnu.org/gnu/gcc/ - GCC Source


다시 하려니 기억이 나질 않는다. ㅡㅡ;


그래서 과정을 하나씩 정리해보려 한다.


1. 소스 다운로드

[root@ordweb install]# wget https://ftp.gnu.org/gnu/gcc/gcc-5.4.0/gcc-5.4.0.tar.gz


2. 압축 해제

[root@ordweb install]# tar xvzpf gcc-5.4.0.tar.gz


3. 선행 요구사항 다운로드

[root@ordweb install]# cd gcc-5.4.0/

[root@ordweb gcc-5.4.0]# ./contrib/download_prerequisites


4. 컴파일 - 약 한시간 이상 걸린다. ㅠ.ㅠ

[root@ordweb gcc-5.4.0]# ./configure --prefix=/usr/local/gcc5.4 --enable-checking=release --enable-languages=c,c++


... 에러 발생 ...

...32bit lib가 없어서 발생...


[root@ordweb gcc-5.4.0]# ./configure --prefix=/usr/local/gcc5.4 --enable-checking=release --disable-multilib --enable-languages=c,c++

[root@ordweb gcc-5.4.0]# make

[root@ordweb gcc-5.4.0]# make install





관련해서... 또 다른 삽질...

내가 작성할 application이 실행할따 기존 버전의 gcc library 참조. ㅠ.ㅠ

gcc5.4의 lib64를 먼저 참조하도록 LD_LIBRARY_PATH 변경


[ub1st@ordweb ~]$ vi ~/.bash_profile

...

LD_LIBRARY_PATH=/usr/local/gcc5.4/lib64/:/usr/local/lib:/usr/lib:$LD_LIBRARY_PATH:$ORACLE_HOME/lib

export LD_LIBRARY_PATH

...

[ub1st@ordweb ~]$ source ~/.bash_profile




POCO Library를 gcc 5.4.0으로 컴파일 하기

  •  결국 다시 4.8 버전으로 컴파일해서 올림. ㅠ.ㅠ(앞의 글에서 적었던 문제)

[root@ordweb poco-1.7.5]# cd build/config

[root@ordweb poco-1.7.5]# vi Linux


CROSS_COMPILE = /usr/local/gcc5.4/bin/ 

CC      = ${CROSS_COMPILE}gcc

CXX     = ${CROSS_COMPILE}g++

...
#STRIP   = ${CROSS_COMPILE}strip
STRIP   = strip



perl에 CPAN 설치하고 cpan 콘솔에서 Archive:Zip 설치하려고 삽질하다 실패하고...

걍 git에서 다운받아서 설치.. (아... 눈물난다. ㅠ.ㅠ)


[root@ordweb install]# git clone https://github.com/redhotpenguin/perl-Archive-Zip.git

[root@ordweb install]# cd perl-Archive-Zip/

[root@ordweb perl-Archive-Zip]# perl Makefile.PL

[root@ordweb perl-Archive-Zip]# make

[root@ordweb perl-Archive-Zip]# make test

[root@ordweb perl-Archive-Zip]# make install





관련해서... 오라클의 인코딩이 이상해... ㅠ.ㅠ

한글을 제대로 못 읽는다!


[ub1st@ordweb ~]$ vi ~/.bash_profile

...

NLS_LANG=KOREAN_KOREA.KO16MSWIN949

export NLS_LANG

...

[ub1st@ordweb ~]$ source ~/.bash_profile





마지막 삽질...

코딩중에 file을 열고/쓰고/닫기 위해 기존 C언어의 open/write/close 를 사용...

나름 좀 좋게 해보겟다고 C++의  ofstream 사용... 

그러나 ofstream에서 UTF8 Write는 또 다른 문제 야기...

다시 C언어의 함수로 돌아옴... ㅠ.ㅠ