経緯
WEBアプリが開発してみたい!そうだ、ToDoアプリを作ろう!!
そう思い立ちネットの海を徘徊し、Express+mysqlの環境を構築していてぽちぽちやってみていたのですが…
なんか一生エラー吐くじゃんウケるぅ…。と半泣きになっていたのがやっと解決したのでメモ書き程度に置いておきます。
環境
・Windows
・mysql 5.7
スクショを取っていなかったので前半画像ないです。すみません。
DBに登録をしようと日本語を入力しても反映されない。
色々試していたところ、半角英数字は問題なくDBに登録されていた様子。
エラーコードをぐぐってみたところ、やっぱりと言うか何と言うか、日本語の入力が一切受け付けられていなかったようです。
原因:mysqlの文字コードが日本語非対応だったから。
C:\ProgramData\MySQL\MySQL Server 5.7
に格納されてるmy.ini
を編集。
[mysqldump]
default-character-set = utf8mb4
[mysqld]
character-set-server=utf8mb4
skip-character-set-client-handshake
default-storage-engine=INNODB
色々試したけれど、上記を追記してみたところ、エラーが消えました。
文字化け、襲来
日本語の入力をしてもエラーが出ない!やったー!と思ったのもつかの間…。
ばちくそに文字化けしとるやんけェ…。
何が起きているんだと調べたところ、DB側の文字コードとコマンドプロンプトの表示の文字コードが一致していない為に発生している模様。
なるほど確かに…そりゃ化けますね。
コマンドプロンプトの文字コードを確認します。
コマンドchcp
を叩く。
左上のウィンドウの枠のところで右クリック→プロパティの「現在のコードページ」で文字コードを確認出来ます。
現在のDB側の文字コードは「UTF-8」、対するコマンドプロンプト側は「Shift-JIS」
このずれが文字化けの原因なので、コマンドプロンプト側もUTF-8に揃えます。
日本語がちゃんと日本語で表示されてるー!!!!
私の心の叫びが入力されていますね。
これにて一件落着。
私の備忘録代わりに置いておきます…。
参考URL:
https://dev83.com/mysql-insertinto-error/
https://motomotosukiyaki.com/cant-input-japanese-in-mysql