MySQL5.0.x 文字化け対処

MySQL4.0.xで稼動中のXoopsをMySQL5.0.xに移行したら、文字化けしました。

ネットで情報収集して解決したので、覚え書き。
参考URL:http://demosite.jpaccess.net/wiki/index.php?XOOPS%2FMySQL5.0.%A3%F8%A4%C7%A4%CE%CA%B8%BB%FA%B2%BD%A4%B1%C2%D0%BA%F6

原因:MySQL 4.1 以降の文字コード自動変換機能

対処:
XOOPS_ROOT_Directory/class/database/mysqldatabase.php にコードを追加。

function connect($selectdb = true) 内、returnの前に

mysql_query("SET NAMES ujis", $this->conn);

を記述する。

69:function connect($selectdb = true)
70:    {
71:        if (XOOPS_DB_PCONNECT == 1) {
72:            $this->conn = @mysql_pconnect(XOOPS_DB_HOST, XOOPS_DB_USER, XOOPS_DB_PASS);
73:        } else {
74:            $this->conn = @mysql_connect(XOOPS_DB_HOST, XOOPS_DB_USER, XOOPS_DB_PASS);
75:        }
76:   
77:        if (!$this->conn) {
78:            $this->logger->addQuery('', $this->error(), $this->errno());
79:            return false;
80:        }
81:       
82:        if($selectdb != false){
83:            if (!mysql_select_db(XOOPS_DB_NAME)) {
84:                $this->logger->addQuery('', $this->error(), $this->errno());
85:                return false;
86:            }
87:        }
88:
89:// MySQL>=4.1above => ここから
90:       mysql_query("SET NAMES ujis", $this->conn);
91:   /// <<ここまで追加
92:
93:        return true;
94:    }

それにつけても、昼酒は旨い。

DBのバックアップができなくなったー(><)
テーブル整理したら、モジュールが一個、壊れた・・・(T-T)
、、、だからと言って、ふて腐れてビールを飲んでいても、何も解決しないとゆーことは、よく判った。しくしく。

相変わらずねー、情報収集しても断片的なネタしかないし。
私は1から10まで手取足取り教えてくれる、懇切丁寧なマニュアルがなけりゃ何もできないんだよーっ。
という自分のスキル不足を嘆きつつ。

・10日前までは、バックアップが取れた。
・今日はになったら動かない。

=>その間にやったこと。
・モジュールの追加。

?追加したモジュールと相性が悪いのかも?

エラーメッセージは、「500 Internal Server Error」
「内部エラーが発生しています。
本サーバーは、「CGIプログラムの中の間違い」「または間違った設定」「完了できない要求」に遭遇しました。 」

「MyX_BackUp エラー」で検索したら、

別件の話題の中に、
「なお、タイムアウトに関しては、max_execution_time を変更すれば回避できる可能性があります。」
記述あり。

max_execution_time をキーワードに情報収集して。

php.ini で max_execution_time を設定できることを確認。

php.ini の記述方法なんて知らないし(;_;)
iniファイル書き替えるなんて、怖いことは、できればしたくない。

だってー
「max_execution_time integer. スクリプトがパーサにより強制終了されるまでに許容 される最大の 時間を秒単位で指定します。この命令は、いい加減に書かれたスク リプト がサーバーの負荷を上げることを防止するのに役立ちます。」
って説明があるんだもん。
リスクは避けたい。
けどなー 動かないのは困るしなー。やるしかないのかなーーー。
むーーーーん?

まず、php.iniの書き方を調べなくては。

・・・はにゃーん。
set_time_limit を使って、モジュール単位で接続時間を決めることができるんじゃん?
だったら、今あるモジュール内で、どう使っているか調べれば、カンタンにテストできるじゃん?

grep grep・・・

おー 見っけ!!
試しにデフォルト30を、300に変更。
モジュールアップデートして、バックアップ実行!!

~~~~~~~!
でけたー☆

おぉー。モジュールを増やしたから、バックアップに時間がかかるようになって、デフォルト30秒じゃ足りなかったのねー。

なるほどなるほど。理屈が判れば、納得なんだけどね。
私のサイト、まだそんなにデータ量多くないんだけどなぁ・・・
これっくらいで30秒オーバーするのなら、このMyX_BackUpはすぐタイムアウトエラーを出しちゃうじゃん?
一般設定で、set_time_limit が設定できるようになっていれば、初心者管理人にも親切だと思うなぁ・・・

今回は(私にしては)比較的、手早く解決できたけど、こんなんのトラブル回避に時間がかかったら、しんどいなー(^^;;;

問題解決すると、芋蔓式に情報が出てくるのは何故だろう?

sakuraレンタルサーバーは、サーバーコントロールパネル / PHP設定ファイルの編集 で、php.iniの編集ができる。
ロリポップはできない。

いつか役にたつかもしれないから、覚えておいて >> 明日の私

テーブル一個壊したけど、問題解決できたから、よしとしよう。
トラブル回避してから飲む昼酒は旨い。

今日のタスクは何一つ進んでいないのが、唯一の問題(笑)

教訓:ふて腐れる前に前向きに問題解決に取り組んだ方がいーと思う。

2015年6月
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30        

最近のトラックバック

無料ブログはココログ

ブログパーツ

  • なかのひと