Top > MySQL4.0.25からMySQL4.1.22へバージョンアップとOpenPNE

先ずはVineを3.2から4.1へ

Vine3.2からVine4.1へバージョンアップしてみたのだがVine4.1はデフォルトで5.0.x系がインストールされてしまう。
とりあえずMySQLのバージョンは上げたくなかったので/etc/apt/apt.confに下記のようにして
Vineを4.1に上げたときにMySQLのバージョンが上がらないようにしておいた。

 Hold {"^MySQL";};

そして予めCDにisoを焼き付けておいてCDでアップグレードした。
CDでアップグレードさせていくとリブートするので

# apt-get update
# apt-get -f dist-upgrade

としておく。
するとすごい勢いでアップグレードしていきます (..;
ちょっとあの勢いはびっくりしましたw

MySQL4.1.22をrpmでやってみた

ソースでインストールしていればもっと簡単だったかもしれない。。。
今思うとそう思います。。。(ノД`)シクシク

4.1.22のrpmのダウンロードからコンパイルまで

MySQL4.0.25からMySQL4.1.22にアップグレードする前にこちらを参考にOpenPNEのファイルをdumpしたりリストアしたりしてutf8_general_ciの使い方に慣れましょう (^^;

mysqldump --default-character-set=utf8 -uroot -ppassword db1 > db1.sql

4.0.25の頃はこんな指定しなくても良かったもんね。。。

CREATE DATABASE `OpenPNEdb` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

こうしてCREATE DATABASEしないと後で大変なことになるので必ずやっておこう!
っで適当にテスト用のデータベースを付くってdumpしたsqlファイルを流し込んでみてphpMyAdminなどで文字化けしているかどうかを確認したりしてみよう。

  • どんなとき文字化けするか?
  • sqlファイルをUTFにしておかないとだめって事もわかってくる。
    nkf --utf8 dump.sql > dump_utf8.sql
    こんな感じでUTF8に変換してやる。。。

続きはMySQL4.1.22でOpenPNEのページに詳しくまた書き記していこうと思います。

MySQL4.1.22のコンパイルまでの作業手順

# su - ippanuser
$ cd /home/ippanuser/rpm/SRPMS

と予め一般ユーザーになってhome/ippanuser/rpm/SRPMSへ移動しておきます。

  1. 先ずはここへ出向きMySQL-4.1.22-0.src.rpmをwgetしておきます。
  2. パッケージを解凍
    $ rpm -ivh MySQL-4.1.22-0.src.rpm
  3. specファイルを触る。
    $ cd /home/ippanuser/rpm/SPECS
    $ vi mysql-4.1.22.spec
  4. UTF8でコンパイルした方が良いとかいろいろ書いてあったけどこちらの指南書ではbinaryの方が良いようなことが書いてあったのでbinaryでコンパイルしたかったので下記のように修正した。
           ./configure \
               $* \
               --with-charset=binary \  ←ここです
               --enable-assembler \
               --enable-local-infile \
               --with-mysqld-user=%{mysqld_user} \
               --with-unix-socket-path=/var/lib/mysql/mysql.sock \
               --with-pic \
               --prefix=/ \
               --exec-prefix=%{_exec_prefix} \
               --libexecdir=%{_sbindir} \
               --libdir=%{_libdir} \
               --sysconfdir=%{_sysconfdir} \
               --datadir=%{_datadir} \
               --localstatedir=%{mysqldatadir} \
               --infodir=%{_infodir} \
               --includedir=%{_includedir} \
               --mandir=%{_mandir} \
               --enable-thread-safe-client \
               --with-readline ;
  5. っでrpm -baする
    $ rpm -ba mysql-4.1.22.spec
    1. コンパイルの時間はどえらいかかります( ̄_ ̄|||) どよ〜ん
  6. 待つこと小一時間。。。/home/ippanuser/rpm/RPMS/i386にrpmが出来ています (^Q^
    MySQL-Max-4.1.22-0.glibc23.i386.rpm
    MySQL-client-4.1.22-0.glibc23.i386.rpm
    MySQL-devel-4.1.22-0.glibc23.i386.rpm
    MySQL-server-4.1.22-0.glibc23.i386.rpm
    MySQL-shared-4.1.22-0.glibc23.i386.rpm
    とりあえず必要なファイルは上記の5つ。
    1. rpmソースをダウンロードしてきたここのサイト様にも同じファイル名のものがありますが必ず自分でコンパイルしたものを使いましょう。
    2. ここまでの作業は一般作業で行います。su - としておいてください。
  7. su - して全てをインストールしてみる。
    # su -
    # rpm -Uvh MySQL-Max-4.1.22-0.glibc23.i386.rpm
    # rpm -Uvh MySQL-client-4.1.22-0.glibc23.i386.rpm
    # rpm -Uvh MySQL-devel-4.1.22-0.glibc23.i386.rpm
    # rpm -Uvh MySQL-server-4.1.22-0.glibc23.i386.rpm
    # rpm -Uvh MySQL-shared-4.1.22-0.glibc23.i386.rpm
  8. service mysql restartで反映させる。
  9. お次は/etc/my.cnfの設定です。
    my.cnfの[mysqld]セクションを。。。。
    [mysqld]
    default-character-set=ujis
    old-passwords
    とだけしておいた。。。
  10. service mysql restartとして反映させる。

MySQL4.1.22にしてからOpenPNEでのちょっとした不具合

skip-character-set-client-handshakeっていうのは5.0.13-rc以上には必須らしいけど
4.1.22ではとりあえず問題は出ていない。。。
ただ。。。OpenPNE上のメッセージが自分宛に来ると携帯にメールが来るでしょ?
そのメール内にあるURLをクリックしても携帯でこんなエラーが出て接続できない。。。

応答が得られませんでした。しばらくたってからもう一度操作してください。
(T2050401)

4.1.22にアップグレードしてからこのエラーが出てしまう (..;
結局治らないまままだ悩んでる。。。(´・ω・`)

  • 携帯電話からアクセスできない原因はMySQLにも暗号化ライブラリがあるらしく、それによりアクセスできなくなった模様です。
    下記のようにdefine('OPENPNE_USE_OLD_CRYPT_BLOWFISH', false);の部分をtrueにすることにより解決しました。
    Crypt_Blowfish ライブラリの旧バージョン使用設定
    2.2以前からのアップグレードでログインできないなどの
    暗号化まわりの不具合が起こった場合はtrueに設定してください
    define('OPENPNE_USE_OLD_CRYPT_BLOWFISH', true);
  • 2007/09/08日更新

大変参考になったサイト様。

PHP4.4.7+MySQL4.1.22

念のためですがMySQL4.1.22を自分でコンパイルしたのでPHP4.4.7で運用していたのですが一応リビルトかけて再インストールしました。
その記録を残しておきます。

MySQL4.1.22を自身でコンパイルしインストールしてからPHP4.4.7を入れる

MySQL4.1.22を先にインストールしてからでないとリンクが張られないらしいので
ちょっと心配になってこちらもrpmをapt-get sourceしてrpmのリビルトを行った。

  1. rootで作業
    su -
  2. PHPを一旦アンインストール
    # rpm -e php-mysql
  3. ソースを持ってくるためにaptする。この作業は一般ユーザーで行う。そしてspecファイルがあるところまで移動しrpm -baする。
    # su - ippanuser
    $ apt-get source php
    $ cd /home/ippanuser/rpm/SPECS
    $ rpm -ba php.spec
    ここもMySQLの時ほどではないけど結構時間がかかります♪
  4. /home/ippanuser/rpm/RPMS/i386にいっぱいrpmが出来ているのでインストールする。
    php-devel-4.4.7-0vl2.i386.rpm
    php-domxml-4.4.7-0vl2.i386.rpm
    php-imap-4.4.7-0vl2.i386.rpm
    php-ldap-4.4.7-0vl2.i386.rpm
    php-mcrypt-4.4.7-0vl2.i386.rpm
    php-mysql-4.4.7-0vl2.i386.rpm
    php-odbc-4.4.7-0vl2.i386.rpm
    php-pear-4.4.7-0vl2.i386.rpm
    php-pgsql-4.4.7-0vl2.i386.rpm
    php-snmp-4.4.7-0vl2.i386.rpm
    php-xmlrpc-4.4.7-0vl2.i386.rpm
    php-4.4.7-0vl2.i386.rpm
    php-apache-4.4.7-0vl2.i386.rpm
    php-apache2-4.4.7-0vl2.i386.rpm
    こんなファイル群が出来ていました。
    環境によってインストールするファイルをrpm -Uvhでインストールしてみましょう。
    rpm -Uvh php-mysql-4.4.7-0vl2.i386.rpm
    rpm -Uvh php-pear-4.4.7-0vl2.i386.rpm
    rpm -Uvh php-mcrypt-4.4.7-0vl2.i386.rpm
    こんな感じでしょうか?
  5. service httpd(apache2) restart
    環境に応じてWEBサーバをリスタート。

以上です



リロード   新規 編集 凍結解除 差分 添付 複製 名前変更   ホーム 一覧 単語検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS
Last-modified: 2007-09-08 (土) 11:30:55 (4769d)