본문으로 바로가기

이놈의 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로 설정된다.



댓글을 달아 주세요

  1. ㅇㅇ 2018.06.19 23:34

    my.ini 파일을 C:\Program Files\MySQL\MySQL Server 5.7 위치에 넣으면 되는 것 맞나요?

    • BlogIcon #에게 2018.06.19 23:54 신고

      mysql 압축해제한 폴더에 넣으시면 됩니당!! my.ini 넣은 사진을 안넣었네옹ㅠㅠ 1-1에 보이는 basedir 경로가 my.ini의 경로랍니당!

  2. 송빵떡 2018.10.03 22:40

    이거 mysql 재시작을 cmd 창에다가 하는건가요?

  3. ㅇㅇ 2018.10.08 11:02

    이대로 했는데 server랑 Db characterset은 안바뀌는데 뭐가 문제일까요?

    • BlogIcon #에게 2018.10.08 11:17 신고

      저는 문제가 없었기에 글을 작성해서.. 버전이나 경로 다시 확인해보시고, 다시 깔아봐야할거 같아요 my.ini 가 정확히 셋팅됐다면 언어는 바뀌어요. my.ini가 이미 다른 곳에 존재할 수도 있어요

  4. ddodo 2018.11.01 09:37

    와..이대로 했는데 그대로네요. my.ini도 눈씻고 찾아봐도 없는 것 같은데 곧 돌아버릴 지경입니다... ㅋㅋㅋㅋ ㅠㅠㅠ

    • BlogIcon #에게 2018.11.01 10:05 신고

      안녕하세요ㅠㅠ mysql 버전 확인해보시겠어요? 이 글은 5.7.xx버전이에요ㅠㅠ 저도 여러번 지우고 깔고 반복하다가 겨우 성공한 방법인데.. 이것도 완벽한 방법이 아니였다니ㅠㅠㅠ zip말고 install 로 하시거나 버전을 확인해서 mysql 문서를 보셔야할 거 같아요.. 완벽히 도와드리지 못해서 죄송해요ㅠㅠ

    • ddodo 2018.11.01 10:20

      네 제 컴퓨터에 설치된 버전도 5.7.xx 입니다 ㅠ_ㅜ 그래서 저 방법 따라하다가 안돼서 삽질 좀 해본 결과 재설치가 좋겠다 싶어서.. 삭제 하고 블로거님이 올려주신 설치방법 그대로 따라해보려고 합니다 하하하하 ! 죄송할거 전혀 없습니다!! 다시 처음부터 따라해보겠습니다 ㅠ_____________ㅠ

    • BlogIcon #에게 2018.11.01 10:48 신고

      엇 저 현재 mysql 8 버전 쓰고 있는데, 이 글처럼 my.ini 만들어서 언어설정을 바꿨어요!! 처음에 my.ini 파일 만들고 exit; 해서 나가신다음에 서비스 재시작(4번)하시고..그 다음에 3-2번으로 언어설정 하시구 다시 서비스 재시작 해보시겠어요? my.ini 파일 만들고(2번) 난뒤에 서비스 재시작을 해야 되는데 글에서 빠져있네요ㅠ

    • ddodo 2018.11.05 10:25

      안녕하세요 에게님 ㅠㅠ 해봤는데 Server characterset 이랑 db chracterset만 안바뀌네용 ㅠㅠ.. 방법을 더 찾아봐야겠어요

    • ddodo 2018.11.05 10:46

      에게님 ㅠㅠㅠㅠ 차근차근 다시 해봤더니 성공했어요 드디어 ㅠㅠㅠ 제가 재시작을 제대로 안해줘서 업데이트가 안된던 것 같아요. 아무튼 너무 감사합니다 >_<♥

    • BlogIcon #에게 2018.11.05 11:00 신고

      와!! 다행이네요!!! 열공하세요~~!!

  5. Jungly 2018.12.11 13:02

    좋은글 감사합니다.

  6. 으아 2019.01.07 01:26

    권한이 없어서 저장을 못 한다는데... 이건 어떻게 해야 할까요ㅠㅠ

  7. Colored_k 2019.01.07 16:34

    음 아직 시작전이라.. 걍 하위버전을 설치하는게 정신건강에 도움이 될것같네요..
    결국 UTF-8로 언어를 변경하는것.. 그것이 문제인데.. my.ini 파일을 찾아야되고 근데 그게 있기도 없기도..
    5.7 버전 이후에는 언어를 어떻게 변경하는지를 찾아 보는게 맞는 생각일거같네요.. 다 지우고.. 하위버전 설치하러 갑니다..

    • BlogIcon #에게 2019.01.07 16:42 신고

      음 my.ini를 이용하지 않으시다면 명령어로 하나씩 다 바꾸는 방법이 있어요! 근데 그건 또 귀찮고.. 잘 못 바뀌면 다시 깔아야하고ㅠㅠㅠ my.ini 를 사용하는 건 이런 귀차니즘을 없애고 한번에 바꿀 수 있어서 다들 사용하는 거 같아요! 솔직히 이런건 한번 설치해놓으면 다음부턴 건들지도 않아서.. 정신건강에 좋은 방법으러 하는 게 젤루 좋아요ㅎㅎ.. 화이팅!

  8. gkenk 2020.11.26 10:41

    net stop mysql 커맨드창에서 관리자 권한으로 실행해도 서비스 이름이 잘못됬다고 떠요 ㅠ

  9. 멘붕 2020.12.02 22:48

    똑같이 따라해봤지만... 그래도 한글이 깨져서 저장되네욥 ㅜ.ㅜ

  10. 해이 2021.01.10 23:31

    감사합니다. 큰 도움이 되었어요. 제 블로그에도 참조로 걸어도 될까요?

  11. good 2021.07.21 06:56

    잘보았습니다. 덕분에 ini없을때 하는 방식도 알 수 있었습니다.
    출처남기고 블로그에 내용 올려도 될까요?

  12. ㅇㅇ 2021.08.08 13:53

    감사합니다 (__)

  13. 00 2021.09.22 05:33

    감사합니다. 삽질할 뻔했습니다. my.ini를 망가뜨려서 재설치를 고려했는데 DB내용 백업하는 것도 복잡할 것 같아서 망설이다가.. 이런 구원의 글을 보게 되었습니다.