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

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

QA

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

본문

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

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

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

 

이 질문에 댓글 쓰기 :

답변 2

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

 

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

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

 

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

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

 

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

   

  ! 쉘에서는 mysqldump 사용 = 백업

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

 

  ! 문자셋을 변경하는 쿼리

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

 

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

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에서 반복 실행

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';

 

  ! 포멧 설정, 옵션 활성

SET GLOBAL innodb_file_format = 'Barracuda';
SET GLOBAL innodb_large_prefix = 1;

 

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

<?php
$mysqli = new mysqli("localhost", "username", "password", "your_database_name");
if ($mysqli->connect_error) {
    die("Connection failed: " . $mysqli->connect_error);
}
$result = $mysqli->query("SHOW TABLES");
while ($row = $result->fetch_array()) {
    $table = $row[0];
    $query = "ALTER TABLE `$table` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci";
    if ($mysqli->query($query)) {
        echo "Table $table successfully converted.\n";
    } else {
        echo "Error converting table $table: " . $mysqli->error . "\n";
    }
}
$mysqli->close();
?>
 데이터베이스의 모든 테이블을 utf8mb4_general_ci로 일괄 변경
답변을 작성하시기 전에 로그인 해주세요.
전체 61,266
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT