さくらのレンタルサーバーで MySQL に接続時に文字化けする
2018/12/26 00:33
  • 最近ひょんなことからさくらのレンタルサーバーを使うことがありました。
    さくらのレンタルサーバーでは phpMyAdmin が用意されているので基本的にコンソールにログインする必要はありませんが、
    黒い画面じゃないと落ち着かないぼくは SSH ログインして直接 MySQL コマンドを叩いています。(;´∀`)
    ところが、日本語が含まれるカラムがことごとく文字化け┐(´д`)┌ヤレヤレ

    今の時代、ターミナルも UTF8 だしサーバーも MySQL も普通は UTF8 になってるっしょ?って思いつつ
    念の為文字コードを調べてみました。

    mysql> show variables like 'char%';
    +--------------------------+----------------------------+
    | Variable_name            | Value                      |
    +--------------------------+----------------------------+
    | character_set_client     | ujis                       |
    | character_set_connection | ujis                       |
    | character_set_database   | utf8mb4                    |
    | character_set_filesystem | binary                     |
    | character_set_results    | ujis                       |
    | character_set_server     | utf8mb4                    |
    | character_set_system     | utf8                       |
    | character_sets_dir       | /usr/share/mysql/charsets/ |
    +--------------------------+----------------------------+
    8 rows in set (0.01 sec)
    

    Oh... /(^o^)\\(^o^)/オワタ

    というわけでちょっと面倒ですが毎回以下を叩いて無理やり utf8mb4 にしちゃいます。

    mysql> set charset utf8mb4;
    Query OK, 0 rows affected (0.00 sec)
    

    確認します
    mysql> show variables like 'char%';
    +--------------------------+----------------------------+
    | 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/mysql/charsets/ |
    +--------------------------+----------------------------+
    8 rows in set (0.00 sec)
    

    というわけで、文字化けが解消しました。

    my.cnf を触れるわけではないので、さくらのレンタルサーバーの場合は毎回上記を実行する必要がありそうです。


    人気ブログランキングへ ブログランキング・にほんブログ村へ
    ↑応援よろしくお願いします!m(_ _)m

  • <2018/12/26 00:33>
  • サーバー
  • レンタルサーバーさくらさくらのレンタルサーバーMySQL文字コードUTF8utf8mb4
  • 新しい記事へ
    2018年の振り返り

    古い記事へ
    [WordPress] FTP ではなく SSH による通信を行う…のも微妙です

profile picture

自己紹介的な何か

@wkmettyでついったーやってます。時々。 6年間勤めたゲーム会社を2018年2月に退職しフリーランスのプログラマに。 WordPress Core, WP-CLI コントリビューター。 お仕事募集中です。