DATABASE/MYSQL

MYSQL에서 한글 설정 (한글이 ?로 표시될 때)

naksnaks 2022. 6. 7.
반응형

대학 동기들과 팀 프로젝트를 하던 도중 닉네임에 한글을 입력하고 MYSQL을 가보니 
서버 내에서 ???가 출력되었다.
그전에는 항상 알파벳으로 테스트 하다 보니 한글 설정이 되지 않은 것을 깨달았다.
그래서 검색을 통해서 MYSQL에서 한글을 설정하는 방법을 공부하였다.
실제 서비스였다면 치명적인 에러였을거라 다음부터는 프로젝트를 시작할 때, 항상 설정부터 잘 해주고 해야겠다.

* MYSQL에서 한글 설정하는 법


MYSQL에 접속을 한 뒤 아래의 명령어를 입력해주면 해결된다.

ALTER SCHEMA [데이터베이스 이름]  DEFAULT CHARACTER SET utf8 ;


* Ubuntu 환경에서 MYSQL 한글 설정하는 법


1. Mysql에 접속하여 status로 상태를 확인한다.

status

 

Server CharacterSet과 DB CharacterSet이 latin1로 되어있어서 한글을 인식하지 못하는 오류라고 한다.

2. exit명령어를 통해  MYSQL 밖으로 빠져나온다.

exit


3. /etc/mysql/mysql.conf.d 에 이동한 뒤, mysqld.cnf 파일을 연다.

cd /etc/mysql/mysql.conf.d
vi mysqld.cnf


4. [mysqld] 부분에 다음과 같은 코드를 입력해준다.

[mysqld]
init_connect = "SET collation_connection = utf8_general_ci"
init_connect = "SET NAMES utf8"
character-set-server = utf8
collation-server = utf8_general_ci

파일을 수정하는 방법은 다음과 같다.
1) i : 파일 내에서 insert를 한다는 의미. (콘솔창 아래에 --INSERT-- 문구 확인)
2) 원하는 텍스트들을 입력한다.
3) ESC를 눌러 insert 구문 종료. (콘솔창 아래에 --INSERT-- 문구 사라짐 확인)
4) :wq! : write하고 quit한다는 의미. (저장하고 종료한다는 의미.) 

✅:q! 는 저장하지 않고 종료한다는 의미.


5. MYSQL을 재시작 해준다.
(Ubuntu 환경과 다른 환경은 명령어가 다를 수 있습니다.)

service mysql restart


6. MYSQL 서버에서 status로 상태를 한번 더 확인한다.


위의 사진처럼 Server characterset과 DB characterset이 utf8로 바뀐것을 확인할 수 있다.

이제 다시 한글로 입력을 해보자.

아래의 사진처럼 한글이 잘 들어가는 것을 확인할 수 있습니다.

 

Ubuntu내의 환경에서 자주 Permission관련 에러가 나올 수 있는데 sudo를 명령어 앞에 붙여 해결할 수 있다.
하지만 파일들을 잘못 건드릴 경우, 서버가 동작하지 않을 수 있기 때문에 sudo를 사용할때는 항상 조심해야한다.

 

 

 

아래의 링크가 많은 도움이 되었습니다!

[출처] https://proni.tistory.com/150

반응형

댓글

💲 추천 글