Seven Yu @ 05/17/2008 (11:51 pm)

解决 Windows 下 Apache + php 无法访问 MySQL 问题

Tags: , , ::

前阵子偶把电脑里的 ApachePHP 升级到 Apache 2.2.8PHP 5.2.6,均为最新的稳定版,但测试时发现不能连接mysql 数据库。

开始怀疑 Apache 和 PHP 的新版本不兼容,折腾了几个 php 版本(包括 PHP 6)都没成功。Apache 之前的版本也都 shift + delete 了(我有强迫症:一旦下到新版本,老版本立马 shift + delete -_-|||)。

没办法只能上网问 google 了,找啊找啊找啊找……终于看到个不太相关的结果,尝试了一下居然成功了。

解决办法很简单,就是在 Apache 的配置文件 httpd.conf 中加上一句:

PLAIN TEXT >> CODE:
  1. LoadFile "x:/path/to/php/libmysql.dll"

目的是让 PHP 支持 MySQL。怪了,为啥之前不用写这句呢?就是这样了,希望对你有帮助。

补充,最终 httpd.conf 里 PHP 相关的配置为:

PLAIN TEXT >> CODE:
  1. # PHP
  2. PHPIniDir x:/path/to/php
  3. LoadFile "x:/path/to/php/libmysql.dll"
  4. LoadModule php5_module x:/path/to/php/php5apache2_2.dll
  5. AddType application/x-httpd-php .php
  6. AddType application/x-httpd-php-source .phps

Seven Yu @ 05/07/2008 (11:21 pm)

Apache/MySQL/PHP 集体升级

刚刚进行了一系列更新:

更新都比较顺利,先停掉 mysql 和 apache。

PLAIN TEXT >> CODE:
  1. net stop mysql
  2. httpd -k stop

PHP 和 MySQL 都可以直接解压要原来的目录(MySQL 别覆盖 data 文件夹),Apache 用安装程序,也覆盖以前的目录就可以。

Apache 和 PHP 没啥问题,就不必说了,我的 MySQL 之前是 5.0 的,启动没问题,只是用 mysqld --version 看版本时提示了一个警告信息,大概意思是 thread_stack 参数不再支持 64k 要改成 128k,这个打开 mysql.ini 把 thread_stack 后面的值改成 128k 即可。

改好这个之后再次执行 mysqld --version 又提示需要升级,让执行 mysql_upgrade,需要执行如下命令,然后会进行一系列升级,等升级完毕就一切OK了 :D

PLAIN TEXT >> CODE:
  1. mysql_upgrade -uroot -pYourPassword