前提・実現したいこと
mysqlにrootユーザーでログイン後
insert intoを使い、日本語を入力すると、日本語部分だけ反応されず表示されない。
utf8に変えれば、この問題も解消されるとおもっていたのですが、解消することができません。
php
1# 入力までの流れ 2① 3dpkg-reconfigure localesの設定で、 [*] ja_JP.UTF-8 UTF-8 に設定しました。(元々「*」あった場合、スペースキーで「*」を取り除く)、次に「ja_JP.UTF-8」を選択し、Enterキーを押す。 4 5root@5f2895303966:/# echo $LANG 6jp_JP.UTF-8 7root@5f2895303966:/# locale 8すべて"jp_JP.UTF-8"になっている。 9 10root@5f2895303966:/# mysql -u root -p --default-character-set=utf8mb4 11mysql> INSERT INTO `categories` (`id`, `created_at`, `updated_at`, `is_deleted`, `name`) VALUES 12 -> (NULL, NOW(), NOW(), 0, ''), やはり日本語入力ができない。 13 14② 15# mysqlコンテナに入る 16% docker-compose exec mysql bash 17 18# mysqlにrootユーザーでログイン->パスワードが求められるので入力 19root@5f2895303966:/# mysql -u root -p 20Enter password: xxx 21mysql> INSERT INTO `categories` (`id`, `created_at`, `updated_at`, `is_deleted`, `name`) VALUES 22 -> (NULL, NOW(), NOW(), 0, '洋画'), と入力しても 23 -> (NULL, NOW(), NOW(), 0, ''), のように''になってしまう。
該当のソースコード
php
1 2root@5f2895303966:/# locale 3locale: Cannot set LC_CTYPE to default locale: No such file or directory 4locale: Cannot set LC_MESSAGES to default locale: No such file or directory 5locale: Cannot set LC_ALL to default locale: No such file or directory 6LANG=jp_JP.UTF-8 7LANGUAGE= 8LC_CTYPE="jp_JP.UTF-8" 9LC_NUMERIC="jp_JP.UTF-8" 10LC_TIME="jp_JP.UTF-8" 11LC_COLLATE="jp_JP.UTF-8" 12LC_MONETARY="jp_JP.UTF-8" 13LC_MESSAGES="jp_JP.UTF-8" 14LC_PAPER="jp_JP.UTF-8" 15LC_NAME="jp_JP.UTF-8" 16LC_ADDRESS="jp_JP.UTF-8" 17LC_TELEPHONE="jp_JP.UTF-8" 18LC_MEASUREMENT="jp_JP.UTF-8" 19LC_IDENTIFICATION="jp_JP.UTF-8" 20LC_ALL=jp_JP.UTF-8 21 22# 日本語設定 23mysql> SHOW VARIABLES LIKE '%char%'; 24+--------------------------+----------------------------+ 25| Variable_name | Value | 26+--------------------------+----------------------------+ 27| character_set_client | utf8 | 28| character_set_connection | utf8 | 29| character_set_database | utf8 | 30| character_set_filesystem | binary | 31| character_set_results | utf8 | 32| character_set_server | utf8 | 33| character_set_system | utf8 | 34| character_sets_dir | /usr/share/mysql/charsets/ | 35+--------------------------+----------------------------+ 368 rows in set (0.01 sec) 37 38root@5f2895303966:/# vi /etc/my.cnf 39 40[mysqld] 41# character-set-server=utf8 (コメントアウトにすると入力出来ると知ったので、コメントアウトしたが、入力できない。) 42 43[mysql] 44default-character-set=utf8 45[mysqld] 46character-set-server=utf8 47[mysqldump] 48character-set-server=utf8 49 50
試したこと
php
1① 2#もともと、「";${LANG}"」になっていたので、「"jp_JP.UTF-8"」変更 3$ export LANG=jp_JP.UTF-8 4root@5f2895303966:/# locale 5locale: Cannot set LC_CTYPE to default locale: No such file or directory 6locale: Cannot set LC_MESSAGES to default locale: No such file or directory 7locale: Cannot set LC_ALL to default locale: No such file or directory 8LANG=ja_JP.UTF-8 9LANGUAGE= 10LC_CTYPE=";${LANG}" 11LC_NUMERIC=";${LANG}" 12LC_TIME=";${LANG}" 13LC_COLLATE=";${LANG}" 14LC_MONETARY=";${LANG}" 15LC_MESSAGES=";${LANG}" 16LC_PAPER=";${LANG}" 17LC_NAME=";${LANG}" 18LC_ADDRESS=";${LANG}" 19LC_TELEPHONE=";${LANG}" 20LC_MEASUREMENT=";${LANG}" 21LC_IDENTIFICATION=";${LANG}" 22LC_ALL=\;${LANG} 23 24② 3つの文章は 25a,locale: Cannot set LC_CTYPE to default locale: No such file or directory 26b,locale: Cannot set LC_ALL to default locale: No such file or directory 27c,locale: Cannot set LC_MESSAGES to default locale: No such file or directory 28$ sudo vi /etc/environment 29LANG=jp_JP.utf-8 30LC_ALL=jp_JP.utf-8 31:wq! 32と入力すると a,bは解消されると書いてあったが解消されず、、 33
補足情報(FW/ツールのバージョンなど)
image mysql:5.7
Laravel Framework 5.8.38
docker
mac OS Catalina 10.15.7
mysql Ver 14.14 Distrib 5.7.33, for Linux (x86_64) using EditLine wrapper
mysqld Ver 5.7.33 for Linux on x86_64 (MySQL Community Server (GPL))
参考記事
回答1件
あなたの回答
tips
プレビュー