MySQLで1366エラーメッセージ

PythonでMySQLにデータを追加しようとしたら、エラーメッセージが出力された。
Warning: (1366, “Incorrect string value: ‘\\xE3\\x81\\xBB\\xE3\\x81\\x92…’ for column ‘hogehoge’ at row 1”)

調べたところ、文字コードに問題があるようだ。
現状の文字コード。

SHOW variables LIKE '%char%';
# +--------------------------+--------------------------------+
# | Variable_name            | Value                          |
# +--------------------------+--------------------------------+
# | character_set_client     | cp932                          |
# | character_set_connection | cp932                          |
# | character_set_database   | latin1                         |
# | character_set_filesystem | binary                         |
# | character_set_results    | cp932                          |
# | character_set_server     | latin1                         |
# | character_set_system     | utf8                           |
# | character_sets_dir       | C:\xampp\mysql\share\charsets\ |
# +--------------------------+--------------------------------+

utf8に合わせることにする。
Windowsなので、my.iniファイルを編集する。

[client]
default-character-set=utf8
[mysqld]
character-set-server=utf8

修正後、MySQLを再起動する。
再度、文字コードを確認する。

# +--------------------------+--------------------------------+
# | Variable_name            | Value                          |
# +--------------------------+--------------------------------+
# | character_set_client     | utf8                           |
# | character_set_connection | utf8                           |
# | character_set_database   | utf8                           |
# | character_set_filesystem | binary                         |
# | character_set_results    | utf8                           |
# | character_set_server     | utf8                           |
# | character_set_system     | utf8                           |
# | character_sets_dir       | C:\xampp\mysql\share\charsets\ |
# +--------------------------+--------------------------------+

my.iniの設定を変更しても相変わらずエラーがでるので更に調べたら、
テーブルのカラムごとに文字コードの照合順序があるということがわかった。
コマンドがわからなかったので、phpMyAdminからutf8_binに修正したところ、エラーがでなくなった。

コメント

タイトルとURLをコピーしました