>  기사  >  데이터 베이스  >  mysql 데이터베이스 인코딩 수정

mysql 데이터베이스 인코딩 수정

WBOY
WBOY원래의
2023-05-20 09:49:071493검색

MySQL은 다양한 웹 사이트, 데이터 웨어하우스 및 엔터프라이즈 애플리케이션에서 널리 사용되는 오픈 소스 데이터베이스 관리 시스템입니다. MySQL에서 인코딩 형식은 데이터베이스에 저장된 텍스트 콘텐츠의 내부 바이너리 저장 방식을 나타냅니다.

데이터베이스에 중국어 또는 기타 영어가 아닌 문자와 같은 특수 문자가 저장되어 있는 경우 이러한 문자를 올바르게 저장하고 검색할 수 있도록 올바른 인코딩 형식을 설정해야 합니다. 이 기사에서는 MySQL 데이터베이스의 인코딩 형식을 수정하는 방법을 소개합니다.

1단계: 데이터베이스 백업

데이터베이스 변경을 수행하기 전에 항상 데이터베이스를 백업하여 데이터 손실이나 복구할 수 없는 손상을 방지하세요. MySQL에서 제공하는 mysqldump 도구를 사용하여 데이터베이스를 백업할 수 있습니다.

mysqldump -u [username] -p [database_name] > backup.sql

여기서 [username]은 데이터베이스의 사용자 이름이고, [database_name]은 백업할 데이터베이스의 이름입니다. > 백업 내용을 backup.sql 파일 중간으로 리디렉션하는 것을 의미합니다.

2단계: 데이터베이스 인코딩 보기

현재 MySQL 데이터베이스의 기본 인코딩을 보려면 다음 명령을 실행할 수 있습니다.

SELECT @@character_set_database;

이 명령은 데이터베이스의 현재 기본 인코딩 형식을 표시합니다.

3단계: 데이터베이스 인코딩 수정

데이터베이스 인코딩을 수정하려면 다음 단계를 수행해야 합니다.

  1. MySQL 구성 파일(일반적으로 /etc/my.cnf)을 찾아 엽니다. 파일을 찾을 수 없는 경우 터미널에서 다음 명령을 실행하여 찾을 수 있습니다.
find / -name my.cnf
  1. 구성 파일에 다음 줄을 추가합니다.
[client]
default-character-set=utf8mb4

[mysql]
default-character-set=utf8mb4

[mysqld]
collation-server = utf8mb4_unicode_ci
character-set-server = utf8mb4

이 설정을 사용하면 모든 MySQL 클라이언트와 서버에서 올바른 인코딩 형식.

  1. 프로필을 저장하고 닫으세요.
  2. 변경 사항을 적용하려면 MySQL 서버를 다시 시작하세요.
sudo service mysql restart
  1. 다음 명령을 실행하여 설정이 성공적으로 적용되었는지 확인하세요.
SELECT @@character_set_database;

올바르게 적용된 경우 출력은 "utf8mb4"로 표시되어야 합니다.

4단계: 기존 테이블을 새 인코딩으로 변환

테이블이 데이터베이스에 이미 있는 경우 데이터를 올바르게 저장하려면 테이블을 새 인코딩 형식으로 변환해야 합니다.

  1. 다음 명령을 실행하여 업그레이드해야 하는 모든 테이블에 대한 SQL 문을 생성하세요.
SELECT CONCAT('ALTER TABLE `', table_schema, '`.`', table_name, '` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;') AS execute_sql
FROM information_schema.tables
WHERE table_schema = '[database_name]' AND table_type = 'BASE TABLE'
ORDER BY table_name DESC;

여기서 [database_name]은 변환해야 하는 데이터베이스의 이름입니다.

  1. 결과를 터미널에 복사하고 실행하여 모든 테이블을 새 인코딩으로 변환합니다. 아래와 같이
ALTER TABLE `table1` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE `table2` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
...

5단계: 변경 사항 테스트

모든 테이블을 변환한 후 변경 사항이 성공적으로 적용되었는지 테스트해야 합니다. 다음 명령을 실행하여 모든 테이블의 인코딩 형식이 업데이트되었는지 확인하세요.

SHOW FULL COLUMNS FROM [table_name];

여기서 [table_name]은 테스트할 테이블의 이름입니다. 이 명령은 테이블의 열과 메타데이터를 표시할 뿐만 아니라 테이블에 이전 인코딩 형식의 데이터가 있는지 확인합니다. 결과가 올바르게 나타나면 변경이 성공한 것입니다.

결론

MySQL에서 데이터베이스 인코딩 형식을 수정하면 특수 문자를 올바르게 저장하고 검색할 수 있어 다국어 웹 사이트 및 애플리케이션에 대한 완벽한 지원을 제공할 수 있습니다. 이 문서에 제공된 단계를 따르면 MySQL 데이터베이스의 인코딩 형식을 쉽게 수정하고 데이터 손실이나 손상을 방지할 수 있습니다.

위 내용은 mysql 데이터베이스 인코딩 수정의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.