docker mysql 中国語のコードが文字化けする
Docker コンテナを使用して MySQL データベースをデプロイすると、時々文字化けした中国語が表示されることがあります。これは、MySQL のデフォルトの文字セットが Latin1 であり、中国語の文字は UTF-8 でエンコードする必要があるためです。この記事ではdocker mysqlの中国語文字化け問題の解決方法を紹介します。
1. 現在の MySQL 文字セットを確認する
まず、現在の MySQL 文字セットを確認する必要があります。 MySQL にログインした後、次のコマンドを使用できます:
mysql> show variables like '%char%';
その中で、キャラクタ セット関連の変数は次のとおりです:
- character_set_client: クライアント キャラクタ セット、接続するクライアントです。使用される文字セット;
- character_set_connection: 接続文字セット、つまりサーバーとクライアント間の文字セット;
- character_set_database: データベース文字セット、新しく作成されたデータベースはこの文字セットに基づく必要があります Create;
- character_set_results: 結果文字セット、SELECT クエリによって返された結果で使用される文字セット;
- character_set_server: サーバー文字セット、によって使用される文字セットMySQL サーバー自体。
2. MySQL 文字セットを UTF-8 に変更する
現在の MySQL 文字セットが Latin1 であることを確認した後、それを UTF-8 に変更する必要があります。これは、次の 2 つの方法で実現できます。
- MySQL 構成ファイルを変更する
MySQL 構成ファイル (通常は /etc/my.cnf または /etc/) mysql/my.cnf) に次の 2 行を追加します。
[client] default-character-set=utf8 [mysqld] character-set-server=utf8
このうち、[client] はクライアントの文字セットを UTF-8 に設定するために使用され、[mysqld] はサーバーの文字セットを設定するために使用されます。 UTF-8に設定します。変更が完了したら、MySQL サービスを再起動します。
sudo service mysql restart
- MySQL に接続した後に文字セットを変更します。
MySQL 構成ファイルを変更できない場合は、手動で変更できます。 MySQL に接続した後に文字セットを変更します。次のコマンドを使用して MySQL に接続できます:
mysql --default-character-set=utf8 -u用户名 -p密码 数据库名
接続が成功したら、次のコマンドを順番に実行して文字セットを変更します:
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 文字セットを設定する必要があります。 MySQL イメージは、次の Dockerfile を通じて構築できます:
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. まとめ
上記の 3 つの手順により、Docker コンテナで MySQL を使用し、文字セットを UTF-8 に設定して、中国語の文字化けの問題を回避できます。もちろん、多言語の文字セットを処理する必要がある場合は、特定の状況に応じて調整する必要があります。この記事が皆様のお役に立てれば幸いです。
以上がdocker mysql 中国語のコードが文字化けするの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Dockerは、DevOpsエンジニアにとって必須のスキルです。 1.Dockerは、アプリケーションとその依存関係をコンテナにパッケージ化することにより、分離と移植性を実現するオープンソースのコンテナ化されたプラットフォームです。 2. Dockerは、名前空間、コントロールグループ、フェデレーションファイルシステムで動作します。 3。基本的な使用には、コンテナの作成、実行、管理が含まれます。 4.高度な使用法には、DockerComposeを使用してマルチコンテナーアプリケーションを管理することが含まれます。 5.一般的なエラーには、コンテナ障害、ポートマッピングの問題、データの持続性の問題が含まれます。デバッグスキルには、ログの表示、コンテナの入り、および詳細情報の表示が含まれます。 6.パフォーマンスの最適化とベストプラクティスには、画像の最適化、リソースの制約、ネットワーク最適化、DockerFileを使用するためのベストプラクティスが含まれます。

Dockervolumeは、コンテナを再起動、削除、または移行すると、データが安全であることが保証されます。 1。ボリュームの作成:Dockervolumecreatemydata。 2。コンテナとマウントボリュームを実行します:Dockerrun-It-Vmydata:/app/dataubuntubash。 3.高度な使用には、データ共有とバックアップが含まれます。

Dockerセキュリティの強化方法は次のとおりです。1。-cap-dropパラメーターを使用してLinux機能を制限します。2。読み取り専用コンテナを作成します。これらの戦略は、脆弱性の露出を減らし、攻撃者の機能を制限することにより、コンテナを保護します。

LinuxでDockerを使用すると、開発と展開の効率が向上する可能性があります。 1。Dockerのインストール:スクリプトを使用して、ubuntuにDockerをインストールします。 2.インストールの確認:sudodockerrunhello-worldを実行します。 3。基本的な使用法:NginxコンテナDockerrun-Namemy-Nginx-P8080を作成します:80-Dnginx。 4。高度な使用法:カスタム画像を作成し、DockerFileを使用してビルドして実行します。 5。最適化とベストプラクティス:マルチステージビルドとドッケルコンポスを使用して、DockerFilesを作成するためのベストプラクティスに従ってください。

Dockerは、ブリッジネットワーク、ホストネットワーク、オーバーレイネットワークの3つのメインネットワークモードを提供します。 1.ブリッジネットワークは、単一のホストでのコンテナー間通信に適しており、仮想ブリッジを介して実装されています。 2。ホストネットワークは、高性能ネットワークが必要なシナリオに適しており、コンテナはホストのネットワークスタックを直接使用します。 3.オーバーレイネットワークは、マルチホストDockerswarmクラスターに適しており、仮想ネットワークレイヤーを介してクロスホスト通信が実現されます。

Docker画像を更新する手順は次のとおりです。最新の画像タグ新しい画像をプルする新しい画像は、特定のタグのために古い画像を削除します(オプション)コンテナを再起動します(必要に応じて)

Docker画像を作成する手順:ビルド命令を含むDockerFileを書きます。 Docker Buildコマンドを使用して、ターミナルで画像を作成します。画像にタグを付け、Dockerタグコマンドを使用して名前とタグを割り当てます。

DockerSwarmは、スケーラブルで非常に利用可能なコンテナクラスターを構築するために使用できます。 1)dockerswarminitを使用して群れクラスターを初期化します。 2)swarmクラスターに参加して、dockerswarmjoinを使用します。 3)DockerServiceCreate-Namemy-Nginxを使用してサービスを作成します - Replicas3nginx。 4)dockerstackdeploy-cdocker-compose.ymlmyAppを使用して複雑なサービスを展開します。
