php在初始安装的时候,没有添加mysql 和pdo-mysql
尝试cakephp,把数据库从postgresql换成mysql
发现cakephp连接不上mysql
ok开始解决问题
环境是linux
添加mysql扩展的基本步骤:
1、进入php源代码目录:# cd //home/h-wang/rpm/php-5.3.6/l
2、再进入要添加的mysql扩展源码目录:# cd ext/mysql/
2、调用已经编译好的php里面的phpize:# /usr/local/php/bin/phpize
3、然后configure:# ./configure --with-php-config=/usr/local/php5/bin/php-config --with-mysql=/usr/local/mysql
(/usr/local/mysql 为mysql的安装目录)
4、make && make install
5、编译之后,自动把mysql.so放到了默认的php扩展目录下(phpinfo可查看,我的为 /usr/local/php5/lib/php/extensions/no-debug-zts-20090626),再修改php.ini,去掉;extension=mysql.so前面的分号。
6、重启apache:# service httpd restart
但是cakephp还是连接不上。
直接写一个脚本测试
try{
$conn = @mysql_connect("localhost", "hwang", "hhahhha") or die("connection failed");;
mysql_select_db("cake", $conn);//data为数据库名称
$SQL="SELECT * FROM `posts`";
$query=mysql_query($SQL);
while($row=mysql_fetch_array($query)){
var_dump($row);
}
}catch (Exception $e) {
print $e->getMessage();
exit();
}
以上脚本执行没有问题,原来cakephp用pdo,所以下面代码不能成功连接,再添加pdo mysql
try {
$db = new PDO("mysql:host=$hostname;dbname=db_world", $username, $password);
echo "Connected to database";
}
catch(PDOException $e) {
echo $e->getMessage();
}
1、进入php源代码目录:# cd //home/h-wang/rpm/php-5.3.6/l
2、再进入要添加的mysql扩展源码目录:# cd ext/pdo_mysql/
2、调用已经编译好的php里面的phpize:# /usr/local/php/bin/phpize
3、然后configure:# ./configure --with-php-config=/usr/local/php5/bin/php-config --with-pdo_mysql=/usr/local/mysql
(/usr/local/mysql 为mysql的安装目录)
4、make && make install
5、编译之后,自动把pdo_mysql.so放到了默认的php扩展目录下(phpinfo可查看,我的为 /usr/local/php5/lib/php/extensions/no-debug-zts-20090626),再修改php.ini,去掉;extension=pdo_mysql.so前面的分号。
6、重启apache:# service httpd restart
然后再到cakephp里面测试,ok过了。
如果mysql.so pdo_mysql.so没有在指定位置或者编译不正确,
或者只是在配置文件打开了mysql.so pdo_mysql.so 会发现apache启动失败。
阅读(1161) | 评论(0) | 转发(0) |