Conf 파일 수정
그누보드 root
/vi conf.php
// Set Databse table default Charset
// utf8, utf8mb4 등 지정 가능 기본값은 utf8, 설치전에 utf8mb4 으로 수정시 모든 테이블에 이모지 입력이 가능합니다. utf8mb4 는 mysql 또는 mariadb 5.5 버전 이상을 요구합니다.
define('G5_DB_CHARSET', 'utf8mb4');
utf8 에서 utf8mb4 으로 수정
DB 구조 확인
SQL 접속
> SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';
(output)
character_set_client,utf8mb4
character_set_connection,utf8mb4
character_set_database,utf8mb4
character_set_filesystem,binary
character_set_results,utf8mb4
character_set_server,utf8mb4
character_set_system,utf8
collation_connection,utf8mb4_unicode_ci
collation_database,utf8mb4_unicode_ci
collation_server,utf8mb4_unicode_ci
Table 구조 변경
ALTER DATABASE {database name} CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
Table 전체 변경 / 특정 컬럼 변경 비교 (feat. GPT)
g5_write_
로 시작하는 테이블의 특정 컬럼(wr_subject
, wr_content
, wr_comment
, wr_comment_reply
)의 Collation을 utf8mb4_unicode_ci
로 변경하는 것과 전체 테이블의 Collation을 변경하는 것은 다소 차이가 있습니다.
- 특정 컬럼의 Collation 변경: 특정 컬럼의 Collation만 변경하려면, 각 컬럼에 대해 개별적으로 ALTER TABLE 명령을 사용해야 합니다. 이 방법은 다른 컬럼들의 Collation은 그대로 유지하면서 오직 지정된 컬럼들의 Collation만 변경할 때 유용합니다.
ALTER TABLE [테이블 이름] MODIFY [컬럼 이름] [데이터 타입] COLLATE utf8mb4_unicode_ci;
예를 들어, g5_write_example
테이블의 wr_subject
컬럼의 Collation을 변경하려면 다음과 같이 합니다:
ALTER TABLE g5_write_example MODIFY wr_subject VARCHAR(255) COLLATE utf8mb4_unicode_ci;
2. 전체 테이블의 Collation 변경: 테이블의 Collation을 변경하면 해당 테이블 내의 모든 문자열 데이터 타입 컬럼(VARCHAR
, TEXT
등)의 기본 Collation도 함께 변경됩니다. 그러나 이미 명시적으로 다른 Collation을 가진 컬럼은 변경되지 않습니다.
ALTER TABLE [테이블 이름] CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
예를 들어, g5_write_example
테이블의 전체 Collation을 변경하려면 다음과 같이 합니다:
ALTER TABLE g5_write_example CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
결론적으로, 특정 컬럼의 Collation만 변경하고 싶다면 각 컬럼에 대해 개별적으로 명령을 실행해야 하며, 전체 테이블의 Collation을 변경하고자 한다면 테이블 전체에 대한 명령을 사용하면 됩니다.