- PR -

mysql Client API version

1
投稿者投稿内容
かほ
会議室デビュー日: 2006/10/27
投稿数: 3
投稿日時: 2006-10-27 13:49
現在以下の構成で稼動中です。
os:RHEE3
apache:2.0.46
php:4.3.11
mysql:4.1.3-beta

そして mysqlを 4.1.21 にバージョンアップしたいと思っています。
os:RHEE3
apache:2.0.46
php:4.3.11
mysql:4.1.21

インストールして実行すると php で mysql に接続するところでエラーが発生します。
/usr/local/lib/php/DB/mysql.php(237):mysql_pconnect(): Link to server lost, unable to reconnect
/usr/local/lib/php/DB/mysql.php(237):mysql_pconnect(): Client does not support authentication protocol requested by server; consider upgrading MySQL client

php -i で確認すると以下のバージョンでした。
Client API version => 3.23.49

upgrade すればと思って以下を入れて php を再構築しました。
MySQL-client-standard-4.1.21-0.rhel3.i386.rpm

しかしphp -i で確認するとやはり以下のバージョンでした。
Client API version => 3.23.49

mysqlを 4.1.21 にバージョンアップしたいのですが、
1.Client API version を上げれば解決するのでしょうか?
2.Client API version を上げるためには何を入れればいいのでしょうか?
どなたかご教授ください。
よろしくお願いいたします。
会議室デビュー日: 2006/10/17
投稿数: 13
投稿日時: 2006-10-30 00:34
PHPでの開発はやったことが無いですが。

稼動中の環境もMySQLサイトの対処方法をしていると思われるのですが

http://dev.mysql.com/doc/refman/4.1/ja/old-client.html
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2006-10-30 09:02
おはようございます.
引用:

かほさんの書き込み (2006-10-27 13:49) より:

upgrade すればと思って以下を入れて php を再構築しました。
MySQL-client-standard-4.1.21-0.rhel3.i386.rpm

しかしphp -i で確認するとやはり以下のバージョンでした。
Client API version => 3.23.49


mysql 4.1.3-beta はどのように導入されたのでしょうか?
その後の mysql 4.1.21 はさらにどのように導入されたのでしょうか?
RHEL3 ならもともと含まれているのは mysql 3.23.58-1 のようですし,
「どのように導入したのか?」がわからないと適切な回答も付かないと思います.

以上,ご参考までに.
かほ
会議室デビュー日: 2006/10/27
投稿数: 3
投稿日時: 2006-10-30 15:53
狂様>
はい。
このページも確認しましたがOLD_PASSWORDの問題じゃない気がして。

kaz様>
申し訳ありません。
ご指摘ありがとうございます。

>mysql 4.1.3-beta はどのように導入されたのでしょうか?
mysql 3.23.58-1を削除してソースから入れました。

>「どのように導入したのか?」がわからないと適切な回答も付かないと思います.
まずRHEL3に入ってる mysql は rpm で削除しました。
その後、ソースからmysql 4.1.3-betaを入れました。

この時点で OLD_PASSWORD の対応をして
apache2.0.46+mysql4.1.3+php4.3.11
は動きました。

このあと mysql4.1.21をソースから入れ、php も再コンパイルしましたが
apache2.0.46+mysql4.1.21+php4.3.11
は動きませんでした。
mysql 単体では起動してもちろんコマンドからは(mysql -u 〜)動作確認できていますが、apache+php 経由だとエラーが発生します。

■その他情報
# rpm -qa | grep -i mysql
perl-DBD-MySQL-2.1021-3
libdbi-dbd-mysql-0.6.5-5
qt-MySQL-3.1.2-13.4
MySQL-shared-compat-4.1.21-1.rhel3

■mysql コンパイル時の configure オプション
./configure --with-charset=ujis --with-extra-charsets=all --prefix=/usr/local/mysql

■php -i の情報
mysql

MySQL Support => enabled
Active Persistent Links => 0
Active Links => 0
Client API version => 3.23.49
MYSQL_MODULE_TYPE => builtin
MYSQL_SOCKET => /var/lib/mysql/mysql.sock
MYSQL_INCLUDE =>
MYSQL_LIBS =>


[ メッセージ編集済み 編集者: かほ 編集日時 2006-10-30 18:20 ]
会議室デビュー日: 2006/10/17
投稿数: 13
投稿日時: 2006-10-31 08:36

引用:

かほさんの書き込み 2006-10-30 15:53
このページも確認しましたがOLD_PASSWORDの問題じゃない気がして。



この問題です。

なぜ、稼動中の環境構築でOLD_PASSWORDの対応をしているのですか?

意味がわからないようでしたら、上司の方に相談してください。

Console
ベテラン
会議室デビュー日: 2005/09/10
投稿数: 65
お住まい・勤務地: 石川県金沢市
投稿日時: 2006-10-31 11:06
引用:

■php -i の情報
mysql

MySQL Support => enabled
Active Persistent Links => 0
Active Links => 0
Client API version => 3.23.49
MYSQL_MODULE_TYPE => builtin
MYSQL_SOCKET => /var/lib/mysql/mysql.sock
MYSQL_INCLUDE =>
MYSQL_LIBS =>



module_typeがbuiltinとなっていますが、phpについてくるmysqlのlibraryを使用するつもりでしょうか?
想像なのですが、phpのconfigureで--with-mysql[=DIR]のDIRを指定してないのでは?

引用:

■mysql コンパイル時の configure オプション
./configure --with-charset=ujis --with-extra-charsets=all --prefix=/usr/local/mysql



なので、--with-mysql=/usr/local/mysqlとしてphpを再構築してみてはどうでしょうか?




[ メッセージ編集済み 編集者: Console 編集日時 2006-10-31 11:07 ]
かほ
会議室デビュー日: 2006/10/27
投稿数: 3
投稿日時: 2006-11-01 14:01
Console様>
>なので、--with-mysql=/usr/local/mysqlとしてphpを再構築してみてはどうでしょうか?
再度 configure したら以下のエラーが発生しました。

/usr/local/src/php-4.3.11/ext/mysql/php_mysql.c:1202: undefined reference to `mysql_drop_db'
collect2: ld returned 1 exit status
make: *** [sapi/cli/php] エラー 1

このエラー回避方法を調査してみます。
ありがとうございました。

狂様>
■現環境
 mysql:4.1.3-beta
 Client API version => 3.23.49
 OLD_PASSWORD の対応をして繋がりました。

■新環境
 mysql:4.1.21
 Client API version => 3.23.49
 OLD_PASSWORD の対応をしても繋がりませんでした。

同じ mysql 4.1 系でClient API versionも同じなのに何か違いがあるのでしょうか?
上司も意味がわからないと言ってました。。。

1

スキルアップ/キャリアアップ(JOB@IT)