我想在 PHP 5.2 环境中测试为 PHP 5.3.5(作为 Apache 模块安装)编写的脚本。
我安装了 Apache 2.0.64 和 PHP 5.2.17 的新副本,并按照我之前配置 PHP 5.3 的方式对其进行了配置。除了我确实复制libmysql.dll
到 Apache bin 目录(PHP 5.3 不再有这个文件)。
两台服务器都是手动配置的(不是 XAMPP 版本之类的),并访问相同的本地安装的 mySQL Server 5.5.8。两台服务器都在系统帐户下作为 Windows Server 运行。
PHP 5.3 完美运行,PHP 5.2 返回错误:
Warning: mysql_connect() [function.mysql-connect]: Access denied
for user 'SYSTEM'@'localhost' (using password: NO) in C:\Tools\htdocs\myscript.php on line 33
我使用的 SQL 用户在 PHP 代码中是硬编码的,但不是SYSTEM@localhost
。SYSTEM 似乎是运行 Apache 的 Windows 帐户。(如果我从管理员帐户启动 Apache,消息将变为Administrator@localhost
。)
在我的 SQL Server 上删除了默认用户(名称为 '')。如果此空用户存在,则 PHP 5.2 成功连接到数据库,但mysql_select_db
由于权限原因,数据库选择 ( ) 失败。