MySQL4.0と4.1は一見するとただのマイナーバージョンアップに見えるが、
実際はメジャーバージョンアップに匹敵するほどの違いがある。
4.0で動いていたアプリが4.1では動かない、といったことがザラに発生する。
詳細はhttp://www.mysql.gr.jp/の
「F.A.Q」→「4.1以上の壁」を参照のこと。
というか・・・、PHP4.3.11でMySQL4.1に接続できない。
「クライアントのバージョンをあげろ」云々といわれる。
なぜだろう・・・?
MySQL4.0と4.1は一見するとただのマイナーバージョンアップに見えるが、
実際はメジャーバージョンアップに匹敵するほどの違いがある。
4.0で動いていたアプリが4.1では動かない、といったことがザラに発生する。
詳細はhttp://www.mysql.gr.jp/の
「F.A.Q」→「4.1以上の壁」を参照のこと。
というか・・・、PHP4.3.11でMySQL4.1に接続できない。
「クライアントのバージョンをあげろ」云々といわれる。
なぜだろう・・・?
■追記
上記の解決策判明。
MySQLの設定ファイルはmy.cnfというが、
どういうわけか、ソースインストールした場合は作成されない。
そこで、
# cd /usr/local/mysql/share/mysql
# cp my-huge.cnf /etc/my.cnf
/etc/my.cnfにて
[mysqld]
old-passwords ←追加(パスワードを4.0の形式に戻す)
というようにして、パスワードを4.0の形式に戻してやれば、
PHPからデータベースに接続できるようになった。
4.0形式じゃないとダメな理由は
クライアントが4.0でサーバが4.1の場合ということらしい。
というか、そもそもMySQLのクライアントとサーバってなんだろう?
4.1のソースパッケージをインストールしたんだからサーバは4.1なのだろうか。
じゃぁクライアントが4.0なのは何故だろうか・・・?
クライアントのバージョンは(libmysqlclient, libmysql.dll)に依存するようだ・・。
現時点の設定では文字化け対策として、
PHPでデータベース接続直後に
mysql_query(“set names sjis”,$conn);
を実行しないと日本語が文字化けする
(PHPファイルがシフトJISならsjis、EUCならujisにする)