MacPortでインストールしたPHP5.3では、
mysqlnd(php5.3のmysql native client)が適用される。
しかし、CentOSなどのyumでインストールできるMySQLサーバーとの相性がよろしくない。
PHP Warning: mysql_connect(): mysqlnd cannot connect to MySQL 4.1+ using old authentication
というエラーが現れ、接続することができません。
mysqlndを利用しないよう再コンパイルが必要となる。
2010/07/30 追記
portのvariants指定によりインストールを選べました。
sudo port install php5-mysql +mysql5
ただ、portのPHPを自分で再コンパイルしたい時もあると思うので、
以下記述は残します。
php -iで出てくるport版のcomplileオプションを参照し、
php5.3.2を再コンパイルした。
この際、MySQLのライブラリ指定で癖があったのでメモ。
--with-mysql=/opt/local/include/mysql5/mysql
で試してみたのだが、ライブラリ類とヘッダーの相対パスがずれているため、
必要なファイルが見つからないと申している。
> cd /tmp
> mkdir php5mysql5
> ln -s /opt/local/lib/mysql5 php5mysql5/lib
> ln -s /opt/local/include/mysql5 php5mysql5/include
>
> Then use --with-mysql=/tmp/php5mysql5 in your php configure line
> instead. Then delete /tmp/php5mysql5 when you're done.
上記のように、tmpにライブラリ類のシンボリックリンクを作成し、コンパイルをおこなうことで成功。
mysqlndめんどい。
0 件のコメント:
コメントを投稿