LoginSignup
2
0

More than 3 years have passed since last update.

** (MyXQL.Error) (1406) (ER_DATA_TOO_LONG) Data too long for columnが発生した場合に2つ確認する

Posted at

1. Aliasを書き忘れていないか。

Sample |> Repo.all()

これを書くなら、defmodule内に下記のようなaliasを記述していなければいけない。

alias Project.Context.Sample

2. DBの文字コード

例えばMySQLと、クエリで文字コードが異なると発生する。
その場合、MySQLの文字コードをutf8にする。

MySQLのmy.cnf[mysqld]直下でutf8を指定する記述をします。

[mysqld]
## UTF 8 Settings
init-connect='SET NAMES utf8'
collation_server=utf8_unicode_ci
character_set_server=utf8
skip-character-set-client-handshake

確認します。

mysql> show variables like '%char%';
+--------------------------+--------------------------------+
| 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       | /usr/share/mysql-8.0/charsets/ |
+--------------------------+--------------------------------+
8 rows in set (0.01 sec)

2
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
2
0