質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

UTF-8

UTF-8は8ビット符号単位の文字符号化形式及び文字符号化スキームです。データ交換方式、ファイル形式としては、一般的にUTF-8が使われる傾向があります。

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

Q&A

解決済

7回答

2512閲覧

MySQL  日本語文字入力ができなくなってしまったので 助けて頂きたいです。

jyoco

総合スコア7

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

UTF-8

UTF-8は8ビット符号単位の文字符号化形式及び文字符号化スキームです。データ交換方式、ファイル形式としては、一般的にUTF-8が使われる傾向があります。

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

0グッド

1クリップ

投稿2019/09/04 09:01

前提・実現したいこと

MySQL 5.5 --> 5.7にバージョンアップしてから、日本語文字の入力ができなくなったので直したいです

発生している問題・エラーメッセージ

+--------------------------+------------------------------+
| Variable_name | Value |
+--------------------------+------------------------------+
| character_set_client | utf8mb4 |
| character_set_connection | utf8mb4 |
| character_set_database | utf8mb4 |
| character_set_filesystem | binary |
| character_set_results | utf8mb4 |
| character_set_server | utf8mb4 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql57/charsets/ |
+--------------------------+------------------------------+
8 rows in set (0.01 sec)

バージョンアップ後の設定を確認した表示が上記です。

5.5 をアンインストールしてから 5.7 をインストールしたので、
改めて文字化け対策を行いました。

ec2-user:~/environment $ sed -e "/utf8/d" -e "/client/d" -e "/^[mysqld_safe]$/i character-set-server=utf8\n\n[client]\ndefault-character-set=utf8" /etc/my.cnf |sudo tee /etc/my.cnf

そのあと文字化け対策ができているかを確認すると

mysql> show variables like "chara%";
+--------------------------+------------------------------+
| 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/mysql57/charsets/ |
+--------------------------+------------------------------+
8 rows in set (0.00 sec)

やはり日本語文字入力はできないままです。
文字化け対策のコードに問題があるのかなと思いますが
アドバイス頂けると助かります。

初めての質問で形式的にうまく質問できていないかもわかりません。
長文失礼致しました。

エラーメッセージ

該当のソースコード

ソースコード

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

witchy

2019/09/04 17:12

日本語入力ができないというのは、シェル上でのことですか? それとも、日本語をデータベースに格納できないということでしょうか? ちなみに、後者の場合、その利用しているデータベースの文字コードも、上で記載されているものと同一の結果が返ってきますでしょうか?
jyoco

2019/09/05 02:04

cloud9のバッシュ画面(背景が水色の画面)と呼ばれる所で操作をしています。 「その利用しているデータベースの文字コードも」というのがわかりませんが、 日本語文字列をタイプしてEnterを押すと消えてしまうという状態です。
guest

回答7

0

このままの状態だとターミナルを開くたびに
alias mysql="LD_LIBRARY_PATH=/usr/local/lib64:$LD_LIBRARY_PATH /usr/bin/mysql"
を実行する必要がある。
それを回避するために~/.bashrc ファイルを開いて、上記のaliasコマンドを追記することにする。
$ ls -la ~
を実行して~/.bashrc ファイルの存在を確認する。

ec2-user:~/environment/libedit-20180525-3.1 $ alias mysql="LD_LIBRARY_PATH=/usr/local/lib64:$LD_LIBRARY_PATH /usr/bin/mysql" ec2-user:~/environment/libedit-20180525-3.1 $ ls -la ~ total 116 drwx------ 16 ec2-user ec2-user 4096 Sep 9 08:32 . drwxr-xr-x 4 root root 4096 Jul 24 13:51 .. drwxr-xr-x 2 ec2-user ec2-user 4096 Sep 9 08:21 .aws -rw------- 1 ec2-user ec2-user 5651 Sep 9 08:41 .bash_history -rw-r--r-- 1 ec2-user ec2-user 18 Aug 30 2017 .bash_logout -rw-r--r-- 1 ec2-user ec2-user 336 Jul 24 14:19 .bash_profile -rw-r--r-- 1 ec2-user ec2-user 1401 Jul 27 06:58 .bashrc lrwxrwxrwx 1 ec2-user ec2-user 7 Jul 24 14:12 .c9 -> /opt/c9 drwxr-xr-x 3 ec2-user ec2-user 4096 Aug 6 01:14 .codeintel drwxrwxr-x 3 ec2-user ec2-user 4096 Jul 27 12:19 .composer drwx------ 3 ec2-user ec2-user 4096 Jul 24 14:04 .config drwxr-xr-x 11 ec2-user ec2-user 4096 Sep 9 08:14 environment drwxrwxr-x 3 ec2-user ec2-user 4096 Jul 24 14:22 .gem -rw-rw-r-- 1 ec2-user ec2-user 31 Sep 9 08:24 .gitconfig drwx------ 2 ec2-user ec2-user 4096 Jul 24 14:19 .gnupg drwxrwxr-x 4 ec2-user ec2-user 4096 Apr 2 09:23 gocode -rw-rw-r-- 1 ec2-user ec2-user 118 Jul 24 14:19 .mkshrc -rw------- 1 ec2-user ec2-user 2082 Sep 9 08:32 .mysql_history drwxrwxr-x 5 ec2-user ec2-user 4096 Jul 24 14:26 node_modules drwxrwxr-x 4 ec2-user ec2-user 4096 Jul 24 14:16 .npm -rw------- 1 ec2-user ec2-user 16 Jul 24 14:18 .npmrc drwxrwxr-x 7 ec2-user ec2-user 4096 Jul 24 14:04 .nvm -rw-rw-r-- 1 ec2-user ec2-user 746 Jul 24 14:26 package-lock.json -rw-rw-r-- 1 ec2-user ec2-user 236 Jul 24 14:19 .profile drwxrwxr-x 25 ec2-user ec2-user 4096 Jul 24 14:19 .rvm drwxr-xr-x 2 ec2-user ec2-user 4096 Jul 24 13:51 .ssh drwxrwxr-x 3 ec2-user ec2-user 4096 Jul 24 14:21 .subversion -rw-rw-r-- 1 ec2-user ec2-user 118 Jul 24 14:19 .zlogin -rw-rw-r-- 1 ec2-user ec2-user 118 Jul 24 14:19 .zshrc ec2-user:~/environment/libedit-20180525-3.1 $ コード

上記のように表示されるので
-rw-r--r-- 1 ec2-user ec2-user 1401 Jul 27 06:58 .bashrc
の所にカーソルを当てると~/.bashrcファイルを開くことができる。

その中に
alias mysql="LD_LIBRARY_PATH=/usr/local/lib64:$LD_LIBRARY_PATH /usr/bin/mysql"
を追記したら完成。

投稿2019/09/10 00:57

jyoco

総合スコア7

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

Cloud9のニューターミナルを開いて、リンク情報を参考に、1行ずつ実行して行きました。

wget http://thrysoee.dk/editline/libedit-20180525-3.1.tar.gz tar zxvf libedit-20180525-3.1.tar.gz cd libedit-20180525-3.1 sudo yum install gcc ncurses-devel ./configure --prefix=/usr/local --libdir=/usr/local/lib64 make sudo make install ll /usr/local/lib64/ alias mysql="LD_LIBRARY_PATH=/usr/local/lib64:$LD_LIBRARY_PATH /usr/bin/mysql" ldd /usr/bin/mysql | grep edit libedit.so.0 => /usr/local/lib64/libedit.so.0 (0x00007fb179bec000) コード

投稿2019/09/10 00:37

jyoco

総合スコア7

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

リンク内容
こちらの情報を参考にしました

投稿2019/09/10 00:16

編集2019/09/10 01:24
jyoco

総合スコア7

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Orlofsky

2019/09/10 00:26

ここの掲示板は質問も回答も修正できます。 markdown は [リンク先の簡潔な説明](http...) ヘルプはひと通り読んでおいてください。 https://teratail.com/help
jyoco

2019/09/10 01:03

教えて頂いてありがとうございます。
guest

0

日本語入力できました!

ドットインストールの先生に教えていただいた情報を参考にしました。

https://blog.orz.at/2018/08/30/mysql-editline/

こちらをオンラインスクールの先生にも見ていただき、
「ビルドしてインストール」というところから実行して、
「差し替え方法その1」は
環境全体に効いてしまう方法らしいので、今回は影響が見えないので、避けましょうとのことで、
「差し替え方法その2」を実行しました。

そしてこの方法だと毎回ターミナルを開くたびに
alias mysql="LD_LIBRARY_PATH=/usr/local/lib64:$LD_LIBRARY_PATH /usr/bin/mysql"
コマンドを実行する必要があるとのことでしたので、
~/.bashrcファイルを開き
alias mysql="LD_LIBRARY_PATH=/usr/local/lib64:$LD_LIBRARY_PATH /usr/bin/mysql"
を追記しました。

とても苦労しましたが、
似たような状況で困っている方の参考になれば幸いです。

投稿2019/09/09 10:54

jyoco

総合スコア7

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

0

現在まだ根本的な解決法はわからないままです。
お世話になっているメンターさんに相談した所、バージョンを下げるという方法もあるけれど、ちょっと面倒らしいので、アドバイス頂き、Clowd9で新しいワークスペースを作成してとりあえずの作業を進めています。
また後日オンラインスクールでも相談してみようと思います。

今回はphpMyAdminというツールを教えていただいたymbe.jpさんをベストアンサーに選ばせて頂きました。

ありがとうございました。

投稿2019/09/07 04:09

jyoco

総合スコア7

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

コマンドラインのmysqlクライアントを利用する前提でしょうか?
コマンドライン(シェル画面)での文字入力制限なども絡んでくるので
よほどのことがない限りメリットはほぼ無いので、
なんらかのミドルウェア経由でインテリジェントなクライアントを
利用して入力するのが賢明です。

投稿2019/09/04 09:30

yambejp

総合スコア114814

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jyoco

2019/09/04 09:54

素早いご返答ありがとうございます。 オンライン学習でphpコースを学び初めて1ヶ月たった所です。 cloud9でMysqlに接続しています。 こんなに早く見ていただいてありがとうございます。 なかなか理解が難しいですが、解決策を見つけたいです。
yambejp

2019/09/04 09:56

phpでやっているならphpMyAdminとかご利用になれませんか?
jyoco

2019/09/04 10:33

情報ありがとうございます! 受講しているオンライン学習のサイトでも推奨されているツールであるという情報が出てきました。 読み進めて参考にさせて頂きます。
guest

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jyoco

2019/09/04 10:01

有力な関連情報ありがとうございます。 すごく関連性が近そうだと感じましたが、 知識が浅いがゆえ、自分がどの状態にあり、どこをどうすれば良いのかという理解がはっきりとできていない状態です。 頂いたヒントをよく考察したいと思います。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問