Mariadb11 to MySQL8.4

mariadb 11 의 DB 를 export 해서 mysql 8.4 에 복구를 한다.

콜레이션(Collation) 문제

MySQL 8에 MariaDB 11 덤프를 복원할 때, utf8mb4_0900_ai_ci 콜레이션과 관련된 문제가 발생할 수 있습니다.

MariaDB 11의 기본 콜레이션인 **utf8mb4_0900_ai_ci**는 MySQL 8에서 도입된 콜레이션으로, 호환성 문제는 거의 없습니다. 하지만, MariaDB 11에서 utf8mb4_0900_ai_ci가 아닌 다른 새로운 콜레이션이 사용되거나, MySQL 8의 버전이 매우 낮아 해당 콜레이션이 지원되지 않을 경우 문제가 발생할 수 있습니다.

특히 MySQL 8.0.0에서 8.0.12 사이 버전에서는 utf8mb4_0900_ai_ci 관련 이슈가 보고된 바 있습니다. 이 버전대에서 복원 시 에러가 발생할 수 있습니다.

해결책

  1. MySQL 버전 확인: 복원하려는 MySQL 8의 버전을 확인합니다. 가능하다면 MySQL 8.0.13 이상 버전을 사용하면 콜레이션 호환성 문제가 크게 줄어듭니다.

  2. 덤프 파일 수정: 만약 MySQL 버전 업데이트가 어렵다면, 덤프 파일을 열어 utf8mb4_0900_ai_ci 콜레이션을 **utf8mb4_general_ci**로 일괄 변경할 수 있습니다. sed 명령어를 사용하는 것이 가장 효율적입니다.

    1
    sed 's/utf8mb4_0900_ai_ci/utf8mb4_general_ci/g' mariadb_dump.sql > mysql_dump.sql
  3. 덤프 시 옵션 사용: mariadb-dump를 실행할 때 --default-character-set 옵션을 사용하여 덤프 파일 자체의 캐릭터셋을 MySQL 8에 호환되는 것으로 지정할 수 있습니다.

    1
    mariadb-dump --default-character-set=utf8mb4 -u [사용자명] -p [데이터베이스명] > [파일명].sql

복원 전, 덤프 파일 내의 CREATE TABLEALTER TABLE 문에 포함된 **CHARSET**과 COLLATE 선언을 확인하여 MySQL 8과 호환되는지 직접 점검하는 것이 좋습니다.

변경

$ sed ‘s/utf8mb4_uca1400_ai_ci/utf8mb4_general_ci/g’ dump_financedb.sql > dump_financedb_mysql.sql

qkboo@homebook:~/Qkboo$ mysql -u root -p < dump_work_mysql.sql

Author

Gangtai Goh

Posted on

2025-08-10

Updated on

2025-09-07

Licensed under