MySQL のアップデートに伴って波線ないし波ダッシュが表示できなくなった件について
WordPress で使用している MySQL を 4.0 から 5.1 に変更したところ「~」、波線 (波ダッシュ) が文字化けするようになってしまいました。今回の私のケースでの原因と対策について記します。
いきさつ
さくらインターネットではこの 4 月に 新機能提供、及びサービス安全性の向上を目的とした OS のバージョンアップメンテナンス が実施されました。今までは、MySQL のバージョンは 4.0 のみでしたが、バージョン 5.1 が追加されました。これによって 4.0, 5.1 どちらかのバージョンを選択することができるようになりました。
私は新しい物が好きなので特に理由もなく MySQL のバージョンを 5.1 に上げてみました。すると、ダイアクリティカルマーク付き文字などは問題なく表示されるのですが、「~」、波線 (波ダッシュ) が半角クエスチョンマークに変わってしまっていました。
私の環境
- 変更前
- レンタルサーバー: さくらインターネット スタンダード
- MySQL: 4.0
- phpMyAdmin: 2.6 か 2.8 (忘れました)
- PHP: 5.2.8
- WordPress: 2.7.1
- 文字コード: UTF-8
- 変更後
- MySQL: 5.1
- phpMyAdmin: 3.1.3.1
- 文字コード: UTF-8
これ以外の環境には下記の記述は適合しない場合があります。
原因
これの原因は MySQL のデータベーステーブルの照合順序が ujis_japanese_ci になっていることでした。
対策
テーブルの照合順序を utf8_general_ci にすれば直ります。
手順
これから MySQL のバージョンをアップデートする場合
データベースのバックアップ
phpMyAdmin にログイン→ WordPress で使用しているデータベース名をクリック→テーブル一覧が表示されます→ [エクスポート] タブ→ [DB のダンプ(スキーマ)表示] 内の [エクスポート] 内で [SQL] が選択されていることを確認→ [オプション] 内の [構造] をチェック→ [構造] 内の [DROP TABLE を追加] [AUTO_INCREMENT 値を追加する] [テーブル名やフィールド名を逆クォートで囲む] のみをチェック→ [データ] をチェック→ [データ] 内の全ての項目のチェックを外す ([完全な INSERT 文を作成する]、[BLOBに16進数表記を利用する] をチェックしていても問題なくインポートできました) [ファイルに保存する] をチェック→ [ファイルに保存する] 内の [圧縮:] で [なし] を選択 [non] を選択して [実行する] ボタン 任意の場所を指定して 7zip 等で圧縮しておきましょう。 すぐに使うので圧縮前のファイルも残しておきましょう。
データベースの削除とインポート
さくらインターネットでは MySQL5.1 を利用するためには MySQL4.0 のデータベースを全削除する必要があります。
さくらインターネットの会員メニュー → [サーバ設定] ボタン (サーバコントロールパネルが開きます)→ [アプリケーションの設定] の [データベースの設定] → [データベースを削除] ボタン→ データベースの削除が終わったら [標準のMySQL[MySQL5.1] (推奨)] を選択して新たにデータベースを作成する→ [管理ツール (phpMyAdmin Official Site)] の右のバナーをクリック→ ログイン (phpMyAdmin ) → WordPress で使用しているデータベース名をクリック [操作] タブ→ 一番下の [照合順序:] で [utf8_general_ci] を選択して [実行する] ボタン→ [インポート] タブ→ [ファイルの文字セット:] で [utf8] を選択 [参照...] ボタンで先ほどダウンロードしたデータベースを選択→ [実行する] ボタン
wp-config.php の書き換え
MySQL5.1 を利用すると MySQL のサーバーが入れ替わりますので wp-config.php を編集する必要があります。
wp-config.php を開いて define('DB_HOST', 'mysql**.db.sakura.ne.jp'); の行を書き換えます。
mysql**.db.sakura.ne.jp を新しいサーバー名に書き換えましょう。私の場合は ** が 2 桁から 3 桁に変わりました。
MySQL のバージョンをアップデートしており既に症状が発生している場合
既に作成されているテーブルの照合順序を変更する方法が分からなかったので、私はテーブルをすべて削除してインポートしなおしました。
関連記事
トラックバック
URL:
コメント
この記事のコメントフィード
コメント投稿