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

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

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

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

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

MariaDB

MariaDBは、MySQL派生のオープンソースなリレーショナルデータベースシステムです。 また、MySQLとほぼ同じデータベースエンジンに対応しています。

XAMPP

XAMPP(ザンプ)は、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージングしたApacheディストリビューションです。 XAMPPひとつインストールするだけで、Apache、MySQL、PHP、Perlなどのソフトウェアと、 phpMyAdminなどの管理ツール、SQLiteなどのソフトウェアやライブラリモジュールなどを利用することが可能です。

Q&A

解決済

1回答

18576閲覧

MacのターミナルでMySQL(MariaDB)から日本語入力できない。

mikky

総合スコア12

MySQL

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

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

MariaDB

MariaDBは、MySQL派生のオープンソースなリレーショナルデータベースシステムです。 また、MySQLとほぼ同じデータベースエンジンに対応しています。

XAMPP

XAMPP(ザンプ)は、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージングしたApacheディストリビューションです。 XAMPPひとつインストールするだけで、Apache、MySQL、PHP、Perlなどのソフトウェアと、 phpMyAdminなどの管理ツール、SQLiteなどのソフトウェアやライブラリモジュールなどを利用することが可能です。

0グッド

0クリップ

投稿2017/06/22 08:24

編集2017/06/23 00:56

###前提・実現したいこと
Mac(Sierra)へXAMPPをインストールしてphp、MySQLの学習をしております。
その際にターミナルからMySQL(MariaDB)を起動、「./mysql -u root -p」で接続し、
テーブルへレコードの追加をしようと思い、sql文を書いたのですが、
日本語を入力してエンターキーを押すと日本語の部分が消えてしまい、
入力自体ができません。phpmyadminからはできます。
そもそもMySQL上で日本語の入力自体が消えてしまいます。
色々なサイトを見て設定など変更したり見直してみたのですが、それでも変わらずです。
ターミナルの設定の問題なのでしょうか。
どなたか解決方法をお知りの方はご教授ください。
よろしくお願いします。

###発生している問題・エラーメッセージ
MacのターミナルでMySQL(MariaDB)から日本語入力をしようとしてエンターキーを押すと
日本語が消えてしまう。

###該当のソースコード
例)
↓のように入力したいが
insert into member(last_name,first_name) value('永田','bbb');
「永田」の日本語入力部分がエンターキーを押したら消えてしまう。
そもそもMySQL上で日本語の入力自体が消えてしまいます。

###試したこと
・ホームディレクトリに
.inputrcのファイルを作成し、
set convert-meta off
set meta-flag on
set output-meta on
を記述。

・ホームディレクトリに
.bash_profileのファイルに
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
を追加した事で、localeコマンドで以下が表示される。
LANG="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_CTYPE="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_ALL="en_US.UTF-8"

・/Applications/XAMPP/etc/my.confの設定を追加
[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

[mysqldump]
default-character-set=utf8

[mysqld]
character-set-server=utf8

・showコマンドで確認
SHOW VARIABLES LIKE 'char%';で以下と表示される。
MariaDB [(none)]> 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 | /Applications/XAMPP/xamppfiles/share/charsets/ |
+--------------------------+------------------------------------------------+

###補足情報(言語/FW/ツール等のバージョンなど)
Mac(Sierra)ver10.12.5
XAMPP for OS X 7.1.2
PHP Version 7.1.2
Apache/2.4.25 (Unix)

・ターミナル設定詳細
control+Vで非ASCII入力をエスケープのチェックは外している
テキストエンコーディング:Unicode(UTF-8)

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

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

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

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

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

guest

回答1

0

ベストアンサー

少し前に環境は違いますが、同じようなことで困りました。
その時の原因より以下の点をご確認してみてください

export LANG=en_US.UTF-8

export LANG=ja_JP.utf8

投稿2017/06/22 10:44

sakapun

総合スコア888

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

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

mikky

2017/06/23 00:47 編集

sakapunさん、ご回答ありがとうございます! 教えていただいた対処法を試したところ、結論からすると何も変化はありませんでした。 相変わらずmysqlでは日本語入力を許してくれませんね…。 上記のように変更し、localeコマンドを打つと以下のようになりました。 # locale LANG= LC_COLLATE="C" LC_CTYPE="C" LC_MESSAGES="C" LC_MONETARY="C" LC_NUMERIC="C" LC_TIME="C" LC_ALL=
sakapun

2017/06/23 01:08

もう少しだけ試してほしいのですが、私はCentOSで上記で解決したのですがMacではLangの書き方が違いました…。 export LANG=ja_JP.UTF-8 http://qiita.com/Sheile/items/909ff881e316acf99483 en-USもCも英語の入力環境なので、やはり今のところはLANGが影響しているような気がします
mikky

2017/06/23 02:37 編集

sakapunさん、再度のご回答ありがとうございます! 結論からすると解決しました! そもそもrootユーザでログインしてmysqlに接続した時に表題の問題が起きておりました。 rootユーザには.profileが存在していなかったので/var/root/へ作成して、 これに export LC_ALL=en_US.UTF-8 export LANG=en_US.UTF-8 または export LC_ALL=ja_JP.UTF-8 export LANG=ja_JP.UTF-8 を設定する事でmysqlへ接続しても日本語入力ができるようになりました。 一般ユーザではそれまで試していなかったので.bash_profileへ export LC_ALL=en_US.UTF-8 export LANG=en_US.UTF-8 の設定をしていた時点で、できていたのですね。 始めから一般ユーザで試せば良かったです。 こちらでも無事に日本語を含んだsql文も発行でき、 phpmyadminで確認したところ、文字化けも起こしていませんでした。 一般ユーザとrootユーザで読み込むホームディレクトリのファイルをわかっていなかったために 起きた問題でした。 お騒がせしました。 ご教授してくださりありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問