운영 및 유지보수 Docker docker mysql 중국어 잘못된 코드

docker mysql 중국어 잘못된 코드

May 13, 2023 pm 05:08 PM

Docker 컨테이너를 사용하여 MySQL 데이터베이스를 배포할 때 가끔 잘못된 중국어 문자가 나타날 수 있습니다. 이는 MySQL의 기본 문자 집합이 Latin1이고 중국어 문자를 UTF-8로 인코딩해야 하기 때문입니다. 이번 글에서는 docker mysql의 중국어 왜곡 문제를 해결하는 방법을 소개하겠습니다.

1. 현재 MySQL 문자 집합을 확인합니다

먼저 현재 MySQL 문자 집합을 확인해야 합니다. MySQL에 로그인한 후 다음 명령을 사용할 수 있습니다.

mysql> show variables like '%char%';
로그인 후 복사

그 중 문자 세트 관련 변수는 다음과 같습니다.

  • character_set_client: 클라이언트가 MySQL에 연결하기 위해 사용하는 문자 세트입니다. Character_set_connection: 연결 문자 집합, 즉 서버와 클라이언트 간의 문자 집합
  • character_set_database: 데이터베이스 문자 집합, 새로 생성된 데이터베이스는 이 문자 집합에 따라 생성됩니다. SELECT 쿼리에서 반환된 결과 문자 집합
  • character_set_server: 서버 문자 집합, MySQL 서버 자체에서 사용하는 문자 집합.
  • 2. MySQL 문자 집합을 UTF-8로 수정
  • 현재 MySQL 문자 집합이 Latin1인지 확인한 후 UTF-8로 수정해야 합니다. 이는 다음 두 가지 방법으로 수행할 수 있습니다.

MySQL 구성 파일을 수정합니다.

    MySQL 구성 파일(일반적으로 /etc/my.cnf 또는 /etc/mysql/my.cnf)에서 다음 두 줄을 추가합니다. :
  1. [client]
    default-character-set=utf8
    
    [mysqld]
    character-set-server=utf8
    로그인 후 복사
  2. 그 중 [client]는 클라이언트 캐릭터셋을 UTF-8로 설정하는데 사용되고, [mysqld]는 서버 캐릭터셋을 UTF-8로 설정하는데 사용됩니다. 수정 완료 후 MySQL 서비스 재시작:
sudo service mysql restart
로그인 후 복사

MySQL 연결 후 문자셋 수정

    MySQL 구성 파일을 수정할 수 없는 경우, MySQL 연결 후 문자셋을 수동으로 수정할 수 있습니다. 다음 명령어를 통해 MySQL에 접속할 수 있습니다.
  1. mysql --default-character-set=utf8 -u用户名 -p密码 数据库名
    로그인 후 복사
  2. 접속 성공 후 다음 명령어를 순서대로 실행하여 문자셋을 수정하세요.
SET character_set_client = utf8;
SET character_set_connection = utf8;
SET character_set_database = utf8;
SET character_set_results = utf8;
SET character_set_server = utf8;
로그인 후 복사

수정이 완료된 후 MySQL을 종료하고 다시 로그인하시면 적용됩니다.

3. Docker 컨테이너에서 UTF-8 문자 집합을 사용하세요

Docker 컨테이너의 MySQL은 이미지를 기반으로 실행되므로 이미지에서 UTF-8 문자 집합을 설정해야 합니다. 다음 Dockerfile을 통해 MySQL 이미지를 구축할 수 있습니다.

FROM mysql:latest
ENV MYSQL_ROOT_PASSWORD=root
ENV MYSQL_DATABASE=test
ENV MYSQL_CHARSET=utf8
ENV MYSQL_COLLATION=utf8_general_ci
COPY ./init.sql /docker-entrypoint-initdb.d/
로그인 후 복사

그 중 ENV 명령은 환경 변수를 설정하는 데 사용되고 MYSQL_CHARSET은 MySQL 문자 집합을 UTF-8로 설정하는 데 사용되며 MYSQL_COLLATION은 데이터 정렬을 다음과 같이 설정하는 데 사용됩니다. utf8_general_ci. 컨테이너 시작 시 자동 실행을 위해 초기화 스크립트 init.sql도 COPY 명령을 통해 이미지에 복사됩니다.

4. 요약

위의 세 단계를 통해 Docker 컨테이너에서 MySQL을 사용하고 문자 집합을 UTF-8로 설정하여 중국어 문자 깨짐 문제를 피할 수 있습니다. 물론 다국어 문자 집합을 처리해야 하는 경우에는 특정 상황에 따라 조정이 필요합니다. 이 글이 모든 사람에게 도움이 되기를 바랍니다.

위 내용은 docker mysql 중국어 잘못된 코드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 채팅 명령 및 사용 방법
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Docker Swarm 클러스터에 응용 프로그램을 어떻게 배포합니까? Docker Swarm 클러스터에 응용 프로그램을 어떻게 배포합니까? Mar 17, 2025 pm 04:20 PM

이 기사는 응용 프로그램을 Docker Swarm에 배포하고 프로세스 중 준비, 배포 단계 및 보안 조치를 다루는 자세한 내용을 자세히 설명합니다.

Kubernetes 포드, 배포 및 서비스는 무엇입니까? Kubernetes 포드, 배포 및 서비스는 무엇입니까? Mar 17, 2025 pm 04:25 PM

이 기사는 Kubernetes의 포드, 배포 및 서비스를 설명하여 컨테이너화 된 응용 프로그램 관리의 역할을 자세히 설명합니다. 이러한 구성 요소가 응용 프로그램 내에서 확장 성, 안정성 및 통신을 향상시키는 방법에 대해 설명합니다. (159 자)

Kubernetes에서 응용 프로그램을 어떻게 확장합니까? Kubernetes에서 응용 프로그램을 어떻게 확장합니까? Mar 17, 2025 pm 04:28 PM

이 기사는 수동 스케일링, HPA, VPA 및 클러스터 자동 구동기를 사용하여 Kubernetes의 스케일링 응용 프로그램에 대해 설명하며 스케일링 모니터링 및 자동화를위한 모범 사례 및 도구를 제공합니다.

Docker Swarm에서 서비스를 어떻게 관리합니까? Docker Swarm에서 서비스를 어떻게 관리합니까? Mar 17, 2025 pm 04:22 PM

기사는 Docker Swarm의 관리 서비스 관리에 대해 논의하고 다운 타임없이 생성, 스케일링, 모니터링 및 업데이트에 중점을 둡니다.

Docker Swarm에서 롤링 업데이트를 구현하려면 어떻게해야합니까? Docker Swarm에서 롤링 업데이트를 구현하려면 어떻게해야합니까? Mar 17, 2025 pm 04:23 PM

이 기사는 Docker Swarm에서 롤링 업데이트를 구현하여 다운 타임없이 서비스를 업데이트합니다. 서비스 업데이트, 업데이트 매개 변수 설정, 진행 상황 모니터링 및 원활한 업데이트 보장을 다룹니다.

Kubernetes에서 배포를 어떻게 관리합니까? Kubernetes에서 배포를 어떻게 관리합니까? Mar 17, 2025 pm 04:27 PM

이 기사는 다양한 도구 및 모범 사례를 사용하여 생성, 업데이트, 스케일링, 모니터링 및 자동화에 중점을 둔 Kubernetes 배포 관리에 대해 설명합니다.

Docker Swarm 클러스터를 어떻게 만드나요? Docker Swarm 클러스터를 어떻게 만드나요? Mar 17, 2025 pm 04:19 PM

기사는 설정, 스케일링 서비스 및 보안 모범 사례를 포함한 Docker Swarm 클러스터 작성 및 관리에 대해 설명합니다.

Docker 인터뷰 질문 : Ace Your DevOps 엔지니어링 인터뷰 Docker 인터뷰 질문 : Ace Your DevOps 엔지니어링 인터뷰 Apr 06, 2025 am 12:01 AM

Docker는 DevOps 엔지니어에게 필수 기술입니다. 1. Docker는 포장 애플리케이션 및 컨테이너에 대한 종속성을 통해 격리 및 휴대 성을 달성하는 오픈 소스 컨테이너화 플랫폼입니다. 2. Docker는 네임 스페이스, 제어 그룹 및 연합 파일 시스템과 함께 작동합니다. 3. 기본 사용에는 컨테이너 생성, 실행 및 관리가 포함됩니다. 4. 고급 사용법에는 DockerCompose를 사용하여 다중 컨테이너 응용 프로그램을 관리하는 것이 포함됩니다. 5. 일반적인 오류에는 컨테이너 고장, 포트 매핑 문제 및 데이터 지속성 문제가 포함됩니다. 디버깅 기술에는 로그보기, 컨테이너 입력 및 자세한 정보보기가 포함됩니다. 6. 성능 최적화 및 모범 사례에는 이미지 최적화, 리소스 제약 조건, 네트워크 최적화 및 Dockerfile 사용을위한 모범 사례가 포함됩니다.

See all articles