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

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

ただいまの
回答率

91.05%

  • MySQL

    4944questions

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

  • VirtualBox

    602questions

    VirtualBoxは、現在米オラクル社が開発している、 x86仮想化ソフトウェア・パッケージの一つです。

  • MariaDB

    248questions

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

【mariaDB】全てUTF8に統一したが文字化け

解決済

回答 5

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 228

pecchan

score 170

MariaDB 5.5.52/ Cent OS7です。
Virtual Box上で稼働してます。

以下のように一通りUTF8に揃えたのですが、日本語が文字化けします。
イメージ説明

文字化けは、
CentOSにログイン後「mysql u -root」→「select * from テーブル名」で見る時に確認できます。

他に試したこととして、
etc/my.cnf.d/client.cnf
に以下を追加し、サービスを再起動しましたが変わらずでした。

[client]
default-character-set=utf8

[client-mariadb]
default-character-set=utf8

文字化けしないためには、何が必要でしょうか?
宜しくお願い致します。

【追記】
SHOW CREATE TABLEで定義を確認しましたが、UTF8でした。 

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 5

checkベストアンサー

+2

  • Centos自体が日本語化対応されていますか?

日本語が記述したテキストファイルを作成してcatコマンドなどで確認する方法もあります。

設定参考→https://www.server-world.info/query?os=CentOS_7&p=japanese

  • 直接、接続していませんか?

Virtual Boxから直接Centosのバーチャル上では日本語は出力できません。
teraterm等のリモートソフト経由でアクセスする必要があります。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/12/20 10:03

    仰る通りでした。
    teratermにて日本語を正常に確認出来ました。
    知識不足でした。有難う御座います。

    キャンセル

+1

MySQL設定
まず、以下のファイルを cpして .old ファイルにしてバックアップ保持
/etc/my.cnf
/etc/my.cnf.d/client.cnf
/etc/my.cnf.d/mysql-clientes.cnf
/etc/my.cnf.d/server.cnf

CentOS7のMariaDB(Mysql)の設定、使い方
https://centosinstall.com/centos/centos7/mariadb

my-small.cnfの内容をserver.cnfに上書き
cp -p /usr/share/mysql/my-small.cnf /etc/my.cnf.d/server.cnf
cp: overwrite ‘/etc/my.cnf.d/server.cnf’?と表示されたら「yes」エンター

/etc/my.cnf  内の [ hoge] 部分にそれぞれ以下の設定を追加

[mysqld]
character-set-server=utf8

/etc/my.cnf.d/server.cnf  内の [ hoge] 部分にそれぞれ以下の設定を追加

[client]
default-character-set = utf8
[mysqld]
character-set-server = utf8

という感じでした。これでいかがでしょうか?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/12/20 10:05

    お付き合い頂き有難う御座いました。
    今回は、VirtulBoxの日本語環境が原因でしたが参考になりました。
    有難う御座います。

    キャンセル

0

最初にテーブル自体をlatin1で作ってしまえば、当然日本語はまともに入れられなくなります。

SHOW CREATE TABLEなどで、列定義もutf8になっているか確認しましょう。

なお、MySQL・MariaDBのutf8BMP内の文字しか扱えません。絵文字や「𠮷」野家の「つちよし」のような文字については、utf8mb4という別な設定が必要です。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/12/19 15:20

    maisumakun様

    有難う御座います。

    書き漏れていました。
    すでにSHOW CREATE TABLEで定義は、確認済みでした。

    最初にCreateした時にlatin1だったのかも?と思い、
    Drop Tableして再度、Createしました。

    ですが現状、変わらずです。

    キャンセル

0

つLANG=ja_JP.UTF-8

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/12/19 15:22

    hichon様

    有難う御座います。
    こちらは、どこに対して設定するのでしょうか?

    キャンセル

  • 2017/12/20 11:17 編集

    LANGは環境変数です。CentOSに日本語環境がインストールされていれば、Terminalで確認出来ます。
    $ printenv LANG
    ja_JP.UTF-8

    キャンセル

0

あいまいですみません、過去に同じ現象で苦労してGitのログにこんなのが残っていました。

// CentOS7 PHP5.4 & MariaDB5.5.5.6 では指定が必要
$con->query("set names utf8");


つまり、SQLを発行する際に毎回 "set names utf8" を付けないと文字化けを起こしてしまうバージョンが存在して、それを解明するまで数日苦しみました。

これが要因であることは考えられないでしょうか?
試しにクエリの最後? に set names utf8 を付けて出力を試されてみてはいかがでしょうか?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/12/19 15:34

    sakamata様

    有難う御座います。
    set names utf8;
    のあとに
    selectしましたが、変わりませんでした。

    キャンセル

  • 2017/12/19 15:37

    うーん、違いましたか。過去設定したメモがあるので、それを別途貼り付けます。参考になれば

    キャンセル

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

  • ただいまの回答率 91.05%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 受付中

    ORDER BY RAND(); が遅い

     質問 タイトルの通りなのですが、 MariaDBにおいてORDER BY RAND()が非常に遅いため改善を試みましたが、 上手くいかなかった為、 「どうすれば結果取得ま

  • 解決済

    viの編集結果の確認について

    my.cnfにcharacter-set-server=utf8を追記することについてです。 $ sudo vi/etc/my.cnfを打ち込みcharacter-set-ser

  • 解決済

    /etc/my.cnfについて

    文字が大きくなっている行の頭には#(コメント記号)が抜けております。読みにくくてすいません。 centos7.0でmariadbをインストールし文字コードをutf8にしようとして

  • 受付中

    自動生成列の作成時の挙動の違い

    MariaDB 10.2.2を使用していますが10.2.3以降では、このようなGENERATED ALWAYSの列のテーブルを作成する際にエラーが出るようになってしまいました。

  • 解決済

    PHPでUNIQUEなカラムを含むMySQLのデータを一括更新したい

    前提・実現したいこと データ一覧の画面上に入力欄を作り、更新ボタン1つで全部のMySQL (MariaDB) 上のデータが更新されるようなページを作りたいと思っていますが、UNI

  • 解決済

    ユーザ定義変数に配列を代入したい

    前提・実現したいこと タイトルの通りですが、 ユーザー定義変数に配列(ベクトル)を代入したいのですが上手く出来ませんでした。 そもそも、スカラー値しか代入できないのでしょうか?

  • 解決済

    UPDATEを高速にしたい

    前提・実現したいこと UPDATEが非常に遅いので速くしたいです。 accountsテーブルに約1千万件のデータが入っています。 そのうち約180万件に対してUPDATEをする必要

  • 解決済

    SQLにおける日時検索

    毎日毎時間10分単位で時間と風向・風量を測定しDBに記録をしていく様な、添付した画像のテーブルがあります。 そこで質問ですが、このテーブルから 「30分毎のレコード」や「

同じタグがついた質問を見る

  • MySQL

    4944questions

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

  • VirtualBox

    602questions

    VirtualBoxは、現在米オラクル社が開発している、 x86仮想化ソフトウェア・パッケージの一つです。

  • MariaDB

    248questions

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