database.sarang.net
UserID
Passwd
Database
DBMS
ㆍMySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MySQL Q&A 31355 게시물 읽기
No. 31355
MariaDB 104 특정 테이블만 character set, collection 변경 가능한가요?
작성자
이규영(basscraft)
작성일
2021-12-07 20:37ⓒ
2021-12-07 20:41ⓜ
조회수
3,014

CentOS 7 , MariaDB 10.4 입니다.

Charset : utf8 

Collation : utf8_general_ci

로 운영중입니다.


[root@STG ~]# mysql -uroot -p

Enter password:

Welcome to the MariaDB monitor.  Commands end with ; or \g.

Your MariaDB connection id is 9

Server version: 10.4.18-MariaDB-log MariaDB Server


Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.


Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.


MariaDB [(none)]> status;

--------------

mysql  Ver 15.1 Distrib 10.4.18-MariaDB, for Linux (x86_64) using readline 5.1


Connection id:          9

Current database:

Current user:           root@localhost

SSL:                    Not in use

Current pager:          stdout

Using outfile:          ''

Using delimiter:        ;

Server:                 MariaDB

Server version:         10.4.18-MariaDB-log MariaDB Server

Protocol version:       10

Connection:             Localhost via UNIX socket

Server characterset:    utf8

Db     characterset:    utf8

Client characterset:    utf8

Conn.  characterset:    utf8

UNIX socket:            /data/mysql/mysql.sock

Uptime:                 16 sec


Threads: 7  Questions: 4  Slow queries: 0  Opens: 17  Flush tables: 1  Open tables: 11  Queries per second avg: 0.250

--------------


MariaDB [(none)]>



이모지 입력 이슈가 있어서 좀 찾아 보니 4byte 유니코드를 모두 지원하는 utf8mb4 로 변경을 해야 한다고 해서

필요한 특정 테이블만 바꿔서 시도 했는데 잘 안되네요.

 

ALTER TABLE IMOJIE_TEST CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

 

 

인서트를 하면 

SQL Error [1366] [22007]: (conn=22) Incorrect string value: '\xF0\x9F\x8E\xB4 \xEB...' for column `my_database`.`imojie_test`.`CONTENT` at row 1



현대 운영DB의 DISK 사용률이 72%라 전체 데이터베이스를 변경하기엔 용량 문제가 생길 것 같습니다.


결국 꼼수로 DB에서 꺼내와서 특정 문자열을 이모지코드로 변경하는 방법을 생각하고 있는데...


특정 테이블만 변경할 수는 없을 까요?


만약 전체 database 와 테이블을 모두 utf8mb4로 변경한다면 테이블 용량이 25%쯤 증가 한다고 보면 될까요?



 

이 글에 대한 댓글이 총 1건 있습니다.

stack overflow에 있는 내용으로 따라해봤는데

alter table 하고나서 터미널의 mysql에서는 오류가 나지만 jdbc 툴에서는 잘 입력되네요

정상규(pajama)님이 2021-12-08 03:17에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
31358구축한 웹사이트에서 mysql과 php 연동 문제 [2]
김길동
2022-01-28
2560
31357세가지 기준의 기간별 통계 SQL 문의 드립니다. [1]
papa
2021-12-23
3178
31356통계 쿼리 질문합니다. [1]
김동현
2021-12-20
3140
31355MariaDB 104 특정 테이블만 character set, collection 변경 가능한가요? [1]
이규영
2021-12-07
3014
31354mysql unknown option 오류 문의 [1]
초보
2021-11-22
3157
31353날짜순서의 게시글 다음,이전글 찾는 쿼리문.. [1]
황세환
2021-10-26
3654
31351mariadb 10.4 유저 패스워드 sha256 암호화 방식으로 사용하는 방법 문의드립니다. [1]
신은정
2021-10-21
3457
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.050초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다