2026, 새로운 도약을 시작합니다.

phpmyadmin 테이블 안전하게 교체방법있을까요 채택완료

phpmyadmin 에보면 모든 테이블 겉은 utf8mb4_general_ci 으로 되어있는데

구조 눌러보면 속 알맹이는 utf8_general_ci 되어있는게 많다보니

속알맹이 일괄로 utf8mb4_general_ci 으로 바꾸고싶은데 혹시 안전하게 전체 변경 방법좀 알려주세요

답변 2개

채택된 답변
+20 포인트

※ 우선, 백업 - , DB의 중요성을 인지하고 신중히 진행하세요. - 꼭 필요하가?하는 고민 한 번 하시길~~

※ DB가 더 많은 문자를 지원 하게 하시려는 것인가요?

    -- 고민을 좀 하시고 시도 하세요.

♠ 구체적인 개요를 설명 하자면 ;

    -- 백업 우선 > SQL 쿼리를 작성 > 쿼리를 실행( 직접실행, 반복실행 ) > 파일 포맷을 설정 > 옵션 활성

  !  phpmyadmin 접속 > DB 선택 > 내보내기 > SQL 형식내보내기(빠른내보내기) = 백업

  ! 쉘에서는 mysqldump 사용 = 백업

Copy


mysqldump -u 사용자 이름 -p 데이터베이스 이름 > backup할 DB 이름.sql

  ! 문자셋을 변경하는 쿼리

Copy


USE your_database_name;

ALTER TABLE 테이블명 CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

  ! phpmyadmin에서 sql 탭을 한 개씩 변경 하는 경우 - 쿼리 직접 실행

Copy


ALTER TABLE 테이블1 CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

ALTER TABLE 테이블2 CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

.  .  .  

  ! mysql cli에서 반복 실행

Copy


SET @schema = 'DB-name';

SELECT CONCAT('ALTER TABLE ', table_name, ' CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;')

FROM information_schema.tables

WHERE table_schema = @schema

AND table_type = 'BASE TABLE';

  ! 포멧 설정, 옵션 활성

Copy


SET GLOBAL innodb_file_format = 'Barracuda';

SET GLOBAL innodb_large_prefix = 1;

♣ 모든 테이블 일괄 실행 : PHP 스크립트

Copy
 데이터베이스의 모든 테이블을 utf8mb4_general_ci로 일괄 변경
로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

감사합니다

댓글을 작성하려면 로그인이 필요합니다.

phpmyadmin에 일괄설정 옵션이 있습니다

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고