MySQLの日本語入力について
解決済
回答 3
投稿
- 評価
- クリップ 1
- VIEW 1,724
前提・実現したいこと
ubuntu18.04にインストールしたMySQLでデータベースを作成しているのですが,MySQL上で日本語が入力できません.
MySQL上で「あいうえお」と入力しEnterを押すと,日本語が消え入力できない状態です.
色いろなサイトをみて以下のように設定を変えたのですが,解決しません.
1 /var/www に.inputrcファイルを作成し,
set convert-meta off
set meta-flag on
set output-meta on
と記述.
2 localeの追加
$ sudo locale-gen ja_JP.UTF-8
$ sudo /usr/sbin/update-locale LANG=ja_JP.UTF-8
を実行しlocaleコマンドで確認したところ
LANG=ja_JP.utf8
LANGUAGE=
LC_CTYPE="ja_JP.utf8"
LC_NUMERIC="ja_JP.utf8"
LC_TIME="ja_JP.utf8"
LC_COLLATE="ja_JP.utf8"
LC_MONETARY="ja_JP.utf8"
LC_MESSAGES="ja_JP.utf8"
LC_PAPER="ja_JP.utf8"
LC_NAME="ja_JP.utf8"
LC_ADDRESS="ja_JP.utf8"
LC_TELEPHONE="ja_JP.utf8"
LC_MEASUREMENT="ja_JP.utf8"
LC_IDENTIFICATION="ja_JP.utf8"
LC_ALL=
のようになっていました.
3 /etc/mysqlのmy.cnfに以下を記述
[client]
default-character-set = utf8
[mysqld]
skip-character-set-client-handshake
character-set-server = utf8
collation-server = utf8_general_ci
init-connect = SET NAMES utf8
[mysqldump]
default-character-set = utf8
[mysql]
default-character-set = utf8
4 SHOW1コマンドで確認
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/charsets/ |
+--------------------------+----------------------------+
補足情報(FW/ツールのバージョンなど)
ubuntu18.04
Apache/2.4.29
PHP 7.2.5
MYSQL 14.14 Distrib 5.7.23
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 過去に投稿した質問と同じ内容の質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
checkベストアンサー
0
クリティカルな解決策にならなくて申し訳ないのですが、以下の形式でレコードの操作自体は行えるようです。
mysql -uユーザー名 -pパスワード DB名 -e "日本語を含むSQL文"
ちゃんとした解決策につきましては、「mysql 日本語 入力 消える」等で検索すると見つかるかもしれません…。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
0
linux側で以下の変数を定義して接続するといかがでしょうか。
export LANG=ja_JP.utf8
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
0
コマンドラインのmysqlクライアントを利用するのでしょうか?
あまり実用性もないのでphpMyAdminを利用するなど選択肢はありませんか?
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 88.33%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる
質問への追記・修正、ベストアンサー選択の依頼
showkit
2018/09/05 15:11
mysql でない 通常の端末モードでは 日本語入力できるのですね?
agep31
2018/09/05 15:12
はい.問題ありません
showkit
2018/09/05 15:23
> MySQL上で「あいうえお」と入力しEnterを押すと,日本語が消え入力できない状態です. というのは ```sql mysql> あいうえお ``` で Enter ですか? なにか SQL 文を入力してからですか? それと 外部から TeraTerm 等でログインして やってみても同じですか?
agep31
2018/09/05 15:25
mysql>あいうえお Enterで日本語が消えてしまいます.SQL文でも同様のことが起こります.TeraTermでのログインはまだやっていないです.
showkit
2018/09/05 15:35
MySQL の問題か 端末の問題かを切り分けるには Tera Term 使ってみて状況を見るのが良いかと思います。
CHERRY
2018/09/05 16:06
OS の環境変数 LANG は、どうなっていますか?
agep31
2018/09/05 16:41
showkitさん TeraTermですね.使って試してみたいと思います.
agep31
2018/09/05 16:41
CHERRYさん echo $LANGとしたところja_JP.utf8と帰ってきました.
CHERRY
2018/09/05 16:48
ちゃんと反映されているのですね。
madoka9393
2018/09/05 17:07 編集
mysql>~ ではなく mysql -uユーザー名 -pパスワード DB名 -e "select * from hoge where name='日本語'" (通常の端末から入力 SQL文は仮)ならどうでしょう? これでいければMySQLの対話インターフェースの方に問題があると思われます
agep31
2018/09/05 17:31
通常の端末からmysqlにアクセスしデータを表示するということでしょうか?データベースを作成する際に,日本語の部分が入力できないのでname=日本語にはできませんが,一応英数字で入れてあるものは取り出せました.
madoka9393
2018/09/05 17:36
認識合います。例のSQL文はselect文でしたが、日本語を含んだSQL文が作成でき、それが正常に動作するかを確認することが目的でした。 日本語を含んだinsert文を作成し、レコードの挿入が確認できるかを試してみていただくとよいかもです。(挿入はできてもselect時に表示されない、という可能性はありそうですが…)
agep31
2018/09/05 18:04
通常の端末から日本語の値をinsertするSQL文を実行してみたところ,追加することができました.select分でも表示することができました.となると,MySQLのインターフェース面の問題となるのでしょうか?
madoka9393
2018/09/05 18:09
その可能性が高そうですね。 切り分けのお手伝いはできたものの、クリティカルな解決策を提示出来ず申し訳ないです…。 「mysql 日本語 入力 消える」でググると同じような問題に直面している方がいらっしゃるみたいなので、それに対する回答から解決策が見つかるかも知れません。
agep31
2018/09/09 11:16
返信遅れました.申し訳ありません.ベストアンサーとしたいので,回答のほうでお答えしていただけないでしょうか?