XOOPSが使うMySQLの移行メモ。

こんばんわ。


今夜は、モバイルとは全く関係無いメモです。
XOOPS 2.0.16aで使われているMySQLを4.0から5.0へ移行した場合、文字化けを起こします。


原因と考えられるモノは・・・。

    • 文字コードの仕様変更(EUC-JP→UTF8)
    • MySQLのクライアント−サーバー間の自動変換
    • 等など


対応策としては・・・。

    • MySQL4.0からダンプデータをエクスポート
    • MySQL5.0へujisでデータをインポート


この2つに加えて・・・。

    • /class/database/mysqldatabase.phpの、236行目に以下の1行を追加

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

参考:加えたソースの抜粋は以下。

〜(省略)〜
function &queryF($sql, $limit=0, $start=0)
{
if ( !empty($limit) ) {
if (empty($start)) {
$start = 0;
}
$sql = $sql. ' LIMIT '.(int)$start.', '.(int)$limit;
}
mysql_query("SET CHARACTER SET ujis", $this->conn);
$result = mysql_query($sql, $this->conn);
if ( $result ) {
$this->logger->addQuery($sql);
return $result;
} else {
$this->logger->addQuery($sql, $this->error(), $this->errno());
$ret = false;
return $ret;
}
}
〜(省略)〜


これで無事に復旧♪
一時はどーなる事かとドキドキしました(´∀`)