//----------------
* 경고 메시지
Warning (Code 3719): 'utf8' is currently an alias for the character set UTF8MB3, but will be an alias for UTF8MB4 in a future release. Please consider using UTF8MB4 in order to be unambiguous.
Warning (Code 3778): 'utf8_general_ci' is a collation of the deprecated character set UTF8MB3. Please consider using UTF8MB4 with an appropriate collation instead.

 - 해결 방법
  - 문자셋과 정렬 방식을 utf8mb4로 변경한다.
- 백업할때 mysqldump 에 --default-character-set=utf8mb4 옵션을 사용한다


ALTER TABLE `users` 
MODIFY COLUMN   `user_name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
CHARACTER SET = utf8mb4, COLLATE = utf8mb4_unicode_ci;

 


//----------------
* 경고 메시지
Warning (Code 1681): Integer display width is deprecated and will be removed in a future release.
Warning (Code 1287): 'YEAR(4)' is deprecated and will be removed in a future release. Please use YEAR instead

- 원인 : 숫자형 자료에 길이를 지정
- 해결 방법 : 지정한 길이 설정 을 없앤다

MODIFY COLUMN   `count` int  

 


//----------------
* 경고 메시지
Warning (Code 3135): 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_DIVISION_BY_ZERO' sql modes should be used with strict mode. They will be merged with strict mode in a future release.

https://dev.mysql.com/doc/refman/8.0/en/sql-mode.html

https://www.lesstif.com/pages/viewpage.action?pageId=24445406

show variables like 'sql_mode';
show global variables like 'sql_mode';

STRICT_TRANS_TABLES 이나 STRICT_ALL_TABLES 이 있다면 제거하거나 
sql_mode에 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_DIVISION_BY_ZERO' 을 추가한다.

SET GLOBAL sql_mode = 'modes';
SET SESSION sql_mode = 'modes';


//-----------------
* 경고 메시지
Warning (Code 1265): Data truncated for column  at row 366
Warning (Code 1300): Invalid utf8mb4 character string: 'A0A03C'
Warning (Code 1366): Incorrect string value: '\x92t get...' for column 'ques_content' at row 

- 원인 : 문자열 깨짐

- 해결 방법 : 
백업할때 --default-character-set=utf8mb4 옵션 사용
DB 서버과 mysqldump 유틸을 같은 버전으로 맞춘다

 

반응형
Posted by codens