테이블 이관 전 버전 확인이 되지 않았었다.
MySQL 5.0에서 MySQL 8.x로 테이블을 이관해서 확인하는데에는 문제가 없지만, MySQL 8.x에서 MySQL 5.0으로 테이블을 이관하면 글자가 깨지는 문제점을 확인했다.
MySQL 5.x 버전에서 테이블을 생성할 때 유의할 점은 MySQL 8 버전 이상에서 지원되는 `utf8mb4` 문자 집합과 `utf8mb4_unicode_ci` 콜레이션을 사용하지 않는 것입니다. MySQL 5.0에서는 `utf8` 문자 집합과 `utf8_general_ci` 콜레이션을 사용해야 합니다.
### 스키마 생성 스크립트
아래는 MySQL 5.0에 맞게 작성된 스키마 생성 스크립트입니다.
```sql
CREATE DATABASE base DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
USE base;
CREATE TABLE table1 (
CONTET_ID bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'CONTET_ID',
MNGR_ID varchar(20) COLLATE utf8_general_ci NOT NULL COMMENT '작성자 id',
TITLE varchar(100) COLLATE utf8_general_ci NOT NULL COMMENT 'TITLE',
INTRCN varchar(1000) COLLATE utf8_general_ci DEFAULT NULL COMMENT 'INTRODUCTION 소개',
MAIN_EXPSR_ORDR varchar(2) COLLATE utf8_general_ci DEFAULT NULL COMMENT '노출여부 및 순서',
DETAIL_TYPE varchar(20) COLLATE utf8_general_ci DEFAULT NULL COMMENT '상세 방식',
DETAIL_LINK varchar(200) COLLATE utf8_general_ci DEFAULT NULL COMMENT '상세 링크',
DETAIL_INPT longblob COMMENT '상세 입력 방식',
REG_DT datetime NOT NULL COMMENT '등록일',
CHG_DT datetime NOT NULL COMMENT '변경일',
DEL_YN varchar(2) COLLATE utf8_general_ci DEFAULT NULL COMMENT '삭제여부',
PRIMARY KEY (CONTET_ID),
UNIQUE KEY CONTET_ID (CONTET_ID)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci COMMENT='TABLE1';
```
### 스크립트 실행 방법
1. MySQL 클라이언트에 접속합니다:
```sh
mysql -u root -p
```
2. 스크립트를 실행하여 데이터베이스와 테이블을 생성합니다:
```sql
SOURCE /path/to/your/script.sql;
```
3. 스키마가 올바르게 생성되었는지 확인합니다:
```sql
SHOW TABLES IN base;
```
이 스크립트는 MySQL 5.0에서 호환되도록 작성되었으며, 서비스 환경에 맞게 조정되어 있습니다. MySQL 5.0에서는 `utf8mb4` 문자 집합과 `utf8mb4_unicode_ci` 콜레이션을 지원하지 않으므로, `utf8` 문자 집합과 `utf8_general_ci` 콜레이션을 사용해야 합니다.
'학습 > DataBase' 카테고리의 다른 글
Rocky 9에 Oracle XE 21c 설치 가이드 (0) | 2024.11.03 |
---|---|
Windows 시작 시 PostgreSQL 자동 실행 (0) | 2024.09.30 |
MySQL max_allowed_packet 변수 조정하기 : feat. 사진 업로드 실패 (0) | 2024.06.24 |
[DB] AWS MySQL 연결 실패 (0) | 2023.12.27 |
oracle 19c 설치 실패 및 대응 (0) | 2022.10.27 |