Maria db 10.5 기준이다.
MariaDB [iterview]> insert into tag(name) values('프론트엔드');
ERROR 1366 (22007): Incorrect string value: '\xC7\xC1\xB7\xD0\xC6\xAE...' for column `iterview`.`tag`.`name` at row 1
insert 를 하면 다음과 같이 한글이 깨지며 실패했다.
인코딩 방식을 알아보는 명령어는 두 가지가 있다.
status
show variables like 'c%';
두 번째 명령어가 더 자세히 나오는 편이다.
나는 이미 설정을 바꿔놓은 후라 대부분이 utf8로 설정되어있지만, 초기 설정은 latin1이었던 것 같다.
utf8로 바꾸는 방법은 다음과 같다.
my.ini를 메모장으로 열고 이렇게 수정한다.
[mysqld]
datadir=C:/Program Files/MariaDB 10.5/data
port=3306
innodb_buffer_pool_size=1013M
character-set-server=utf8
collation-server=utf8_general_ci
init_connect="SET collation_connection=utf8_general_ci"
init_connect="SET NAMES utf8"
[client]
port=3306
plugin-dir=C:/Program Files/MariaDB 10.5/lib/plugin
default-character-set = utf8
[mysql]
default-character-set = utf8
그 다음 저장하고 시스템> mariadb를 다시 시작 한다.
그러고 다시 명령어를 실행하면 맨 처음 사진과 같이 뜨는데, 여기까지 하고 다시 insert해 본 결과 또 똑같은 에러로 실패했다.
남아있는 latin을 utf8로 변경해보았다.
latin을 뿌리뽑았지만 다시 insert해봐도 또 실패
이 때 이미 생성되어있는 table의 charaset은 변경되어있지 않을 수 있다는 글을 보고 수정해봤다.
그러나 결과는 또 실패
이 때 https://askforyou.tistory.com/24 이 글을 보고 character set을 euckr로 변경하면 된다는 것을 발견
드디어 성공 ㅠㅠ...
왜 euckr 인코딩만 가능한지 궁금해서 찾아봤는데 나오는 내용이 없었다.
나중에 더 알아보자..