본문으로 바로가기

이놈의 MySQL.. UTF-8 설정까지 직접 해야 한단 말이냐!!! my.ini는 온데간데 찾아볼 수가 없다!!! 얌마!!! 진짜 MySQL설치 생각만 하면 짜증난다. 컴퓨터 절대 바꾸기 싫다.. 내가 왜 installer를 안하고 이 고생을 하냔 말이다...


MySQL 폴더를 압축해제했을 때 my.ini가 있는 경우는 옛날 버전(5.7.17이하)인듯 하다.

programData에서 찾아볼 수 있는건 아마 Installer를 한번이라도 했으면 있는 거 같다.


응. 난 둘 다 해당 안돼^^



먼저 한글이 왜 깨져서 나오는 지 알아보자.

**** command 창을 권리자 권한으로 실행해야 한다.


show variables like 'c%';


status;



거의 latin1로 설정되어 있을 것이다. 개 짜증. 그냥 처음부터 utf8로 설정해서 배포해주라 쫌.


2가지 방법이 있다.

1. 테이블 alter으로 변경하라.

2. my.ini로 변경하라.


첫번째 방법으로 해봤는데 매우 귀찮고 귀찮았다. 그래서 두번째 방법으로 할 거다.



1) my.ini 파일 찾기


1-1. basedir 경로

show variables where variable_name like '%dir';


근데, 나는 없다. 난 최신버전이니까.

** basedir 필드의 값은 my.ini가 있는 경로이다!


1-2. C드라이브 - ProgramData - MySQL - MySQL Server 5.7

근데, 나는 없다. 난 zip으로 설치했으니까.


^^.. 물론 있으신 분들은 그걸 사용하시면 됨다.. 새로 만드실 필요 없음다..



2) my.ini 직접 만들기


메모장을 열어 my.ini를 직접 만들자. 뭐 어때. 안죽어. 경로만 제대로 해주면 될거 아냐.

my.ini에 실질적으로 필요한 부분들이다. 나머지 부분 없어도 된다.

> basedir : MySQL이 설치된 경로. 여기다가 my.ini를 저장시켜야 한다!

> datadir : DB 데이터가 저장 될 경로

> port : 일반적으로 3306 사용


***** 본인이 설치한 경로를 적어야한다!!!!! 어디다 설치 된지 모르면 큰일이다!!!!

*** 주의!! 경로는 역슬레쉬(\)가 아니라 슬레쉬(/)로 입력하는 것이 더 좋다. (일부 프로그램은 \를 처리하기에 오류 발생)

**** my.ini 파일을 저장할 때 인코딩을 UTF8로 저장하면 안된다! 인코딩을 ANSI로 저장하자!!!



3) MySQL 재시작


3-1서비스 중지

net stop mysql

3-2서비스 시작

net start mysql

3-3MySQL 로그인

mysql -uroot -p


3-4. 설정했으니, 경로를 확인해보자.

show variables where variable_name like '%dir';


아까랑 똑같다. 그럼 문제없다.

** basedir 필드의 값은 my.ini가 있는 경로이다!



4) utf-8 설정


4-2. my.ini 수정

아까 만든 my.ini에서 추가하면 된다.


[client]
default-character-set = utf8
 
[mysqld]
character-set-client-handshake=FALSE
init_connect="SET collation_connection = utf8_general_ci"
init_connect="SET NAMES utf8"
character-set-server = utf8
collation-server = utf8_general_ci
 
[mysqldump]
default-character-set = utf8
 
[mysql]
default-character-set = utf8




5) MySQL 재시작


5-1. 서비스 중지

net stop mysql

5-2. 서비스 시작

net start mysql

5-3. mysql 로그인

mysql -uroot -p




6) utf8 설정 확인

show variables like 'c%';


status;


모두 utf8로 변경된 걸 확인할 수 있다.

참고로 utf8설정전에 만든 테이블들은 직접 바꿔야한다. 새로 만들어진 테이블들은 utf8로 설정된다.