前提
MySQL実行ツールの利用にあたって、日本語入力時に「Incorrect string value」エラーになりました。
実現したいこと
エラーになる原因を知りたいです。
発生している問題・エラーメッセージ
Schema Error: Error: ER_TRUNCATED_WRONG_VALUE_FOR_FIELD: Incorrect string value: '\xE6\x96\xB0\xE5\xB9\xB4' for column 'name' at row 1
該当のソースコード
MySQL実行ツールとして以下2つを利用しています。
【SQL Fiddle】http://sqlfiddle.com/
【DB Fiddle】https://www.db-fiddle.com/
いずれにも以下SQLを実行すると【DB Fiddle】の方は冒頭のエラーとなります。
【SQL Fiddle】http://sqlfiddle.com/#!9/8ec464
【DB Fiddle】https://www.db-fiddle.com/f/ae1H6YrPVCYvmUeets46it/0
SQL
1CREATE TABLE test1 (`name` VARCHAR(10) ); 2INSERT INTO test1 (`name`) VALUES('新年');
試したこと
日本語を使わないこと、バージョン確認、文字コード確認を試みました。
まずSQLを以下にすると【DB Fiddle】でエラーはなく、日本語に原因があるとわかります。
SQL
1CREATE TABLE test1 (`name` VARCHAR(10) ); 2INSERT INTO test1 (`name`) VALUES('new year'); # 日本を使わなければエラーなし
次にバージョンをSELECT VERSION();
で確認すると
【SQL Fiddle】5.6.48
【DB Fiddle】5.7.38
でしたが、5.7.38で日本語がエラーになるという情報は見つけられませんでした。
最後にエラーを検索しこちらの記事を拝読致しましたら、DBの文字コードに原因があるようで、
【MySQL】INSERT INTOで「Incorrect string value」エラーが表示された時の解決方法
いわく、次の4つの項目が「utf8mb4」でないときに起こるエラーとのこと。
character_set_client
character_set_connection
character_set_results
character_set_server
そこで文字コードを確認するためにSHOW VARIABLES LIKE 'chara%';
を実行しましたが、
なぜか、エラーのない【SQL Fiddle】の方で4つの項目が「utf8mb4」になっていません。
そして、エラーのある【DB Fiddle】の方では「character_set_server」の項目だけ「latin1」でした。
以上のように私の知識と調査ではエラーの原因がいまいち把握できないでおります。
どうして【DB Fiddle】ではエラーとなるのか、原因が推測できる方がいらっしゃいましたら宜しくお願い致します。
補足情報(FW/ツールのバージョンなど)
バージョンは記載した通りで、補足情報は現状特にございません。

