mysqlで日本語が文字化けちゃった場合(文字コードの設定方法)

きっかけ

仕事上で人から聞かれて覚えてなくて。。

ということで調べたこと残しておきます。

mysqlの文字コードはプログラムふくめるとチェックする場所が多いので突き止めるのに毎回苦労です。

ORACLEだと即答できるのですが。。

原因

データベースの場合、大きく下記に分けられます。

  • クライアント側の接続文字コード(プログラム側)
  • サーバー側(mysqlサーバー)の接続文字コード
  • データベースの文字コード
  • テーブルの文字コード
  • カラムの文字コード

調査方法

show variables like "chara%";

+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+

 

対処方法

utf8に設定する

データベースデフォルトの設定

/etc/my.cnf 
windowsであれば C:\Program Files\MySQL\MySQL Server 5.7\my.ini  になります。
フォルダーはインストールによって異なります。
[mysqld]
...
character-set-server=utf8 #mysqldセクションの末尾に追加

[client]
default-character-set=utf8 #clientセクションを追加

再構築

原因箇所より再構築が必要です。

データ退避→drop→create→データ復元

が必要となります。悲しい出来事になります。

ではでは。

—————- 2017.04.02改定 —————————————————————

下記のほうが詳細です。

上記説明で分からない場合は ここ へ移動されてみてください

———————————————————————————————————–

[amazonjs asin=”4797369450″ locale=”JP” title=”基礎からのMySQL 改訂版 (基礎からシリーズ)”]

Git
スポンサーリンク
sutaruhinをフォローする
システム・スタルヒン合同会社
タイトルとURLをコピーしました