1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Docker × MySQL】PowerShellで日本語入力できない問題の原因と解決

1
Posted at

はじめに

PowerShellからDocker上のMySQLに接続してテーブル作成を行っていた際、日本語が入力できない(文字化け・入力不可)問題に遭遇しました。
そこで原因と解決方法をまとめます。


発生した問題

以下のような操作をしていたときに問題が発生しました。
PowerShell → Dockerコンテナ → MySQL接続
日本語(例:'山田')を入力しようとすると

  • 文字化けする
  • 正しく比較できない
  • 入力自体が不安定
    になってしまいました。

原因

原因ですが、コンテナ内のロケール設定が LANG=C のようなASCIIベースになっている場合、日本語を正しく扱うことができないことにありました。
一方で、PowerShell側はUTF-8を前提とした文字コードで動作しているため、ホスト(PowerShell)とコンテナ間で文字コードの不一致が発生します。
その結果、日本語の入力時に文字化けや不正な動作が起こる原因となっていました。


解決策

コンテナ起動時に以下を追加します。

-e LANG=C.UTF-8

docker run -d \
  --name mysql-test \
  -e MYSQL_ROOT_PASSWORD=root \
  -e LANG=C.UTF-8 \
  -p 3306:3306 \
  mysql:8.0

まとめ

原因:文字コードの不一致(ASCII vs UTF-8)
解決:-e LANG=C.UTF-8 を追加
追加対策:SET NAMES utf8mb4;
思ったより解決に時間を使ってしまいました。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?