研修(phpとmysqlの接続エラー)
phpでmysql_connect()でmysql接続しようとしたら、
Fatal error: Call to undefined function mysql_connect() in 〜〜〜
と出た。mysqlに接続できないらしい。
調べたらプログラムのミスではなく、設定側で追加設定する必要。
phpinfoで調べると、、、
./configure --with-mysql
が抜けていた。phpインストール時にmysqlを使える設定をしていなかった。
なのでphpをリコンパイルする。
リコンパイルは、
# make distclean ← 配布に含まれていたファイルだけを残して、他のファイルを消去 # ./configure 〜〜〜 # make # make install
で行う。
しかし、./configureを実行し処理が終わる際に、
configure: error: Cannot find MySQL header files 〜〜〜 Note that the MySQL client library is not bundled anymore!
と出た。調べてみるとMySQLのインストールでdevelもインストールする必要がある。
以前MySQLをインストールしたときは、最小インストール(serverとclient)だった。
なのでdevel.rpmをwgetしてインストールする。
# wget http://dev.mysql.com/get/Downloads/MySQL-5.0/MySQL-devel-5.0.82-0.i386.rpm/from/http://ftp.jaist.ac.jp/pub/mysql/ # rpm -ivh MySQL-devel-5.0.82-0.i386.rpm
これで./configure --with-mysqlすると通った!
で続いてmakeする。
しかし今度はmakeでエラー発生。
gcc: /usr/lib/mysql/libmysqlclient.so: No such file or directory make: *** [libphp5.la] エラー 1
libmysqlclient.soがないらしい。
でこれをいれるにはMySQL-sharedをインストールする。
# wget http://dev.mysql.com/get/Downloads/MySQL-5.0/MySQL-shared-5.0.82-0.i386.rpm/from/http://ftp.jaist.ac.jp/pub/mysql/ # rpm -ivh MySQL-shared-5.0.82-0.i386.rpm
念のため、もう一度make distcleanしてからリコンパイル。
そうするとmake installまで出来た。
これでもう一度phpでmysql_connect()をブラウザで確認したら接続できた!
MySQLに接続するパスワードが違いますってエラーが出たけど。。。