分享

提示连接数据库失败

 上善若水1967 2011-04-07

由于最近工作的关系,需要研究Moodle系统,它是一个线上学习的教学平台,是一个PHP的免费开源项目,目前Windows下的最新版是Moodle 1.9.8,推荐使用MySql数据库,毕竟PHP+MySQL组合一起会更佳,但由于我目前还在MS的.Net阵营,所以期待使用熟悉的MSSQL数据库,这样也能跟现有的.Net系统进行很好的整合,并有利于以后的维护。

配置好PHP运行环境

Moodle官网下载最新的安装包,解压后里就包含了Apache和PHP的运行文件,而且都是不需要重新安装的绿色版,如果想自动运行则可手动添加进Windows后台服务,进入Apache主目录的bin目录下,使用cmd命令安装Apache后台服务:httpd.exe -k install。

PHP连MSSQL数据库

确保Apache运行PHP没问题后,再需要修改PHP主目录下的php.ini配置文件,以支持MSSQL数据库的连接。为了更好的进行调试显示错误,先分别修改php.ini里的display_errors = On和log_errors = On显示错误信息,配置过程主要参考官网说明文档:http://docs./en/Installing_MSSQL_for_PHP,直到最后运行test.php提示连接数据库成功。

修改Moodle的config.php

先copy一份moodle安装目录下的config-dist.php文件,并另存为config.php。按照官网说明将$CFG->的dbtype、dbhost、dbname分别配置好,如果mssql为sql2005数据库,则dbhost应该包含实例名如:127.0.0.1\SQL2005。dbname可为空,将生成表结构到系统默认的master数据库内,建议先创建一个空数据库后再指定dbname。修改$CFG->的wwwroot、dirroot、dataroot配置,根据你本机的Apache配置而进行修改正确。

提示连接数据库失败Error: Database connection failed.

Error: Database connection failed.

It is possible that the database is overloaded or otherwise not running properly.

The site administrator should also check that the database details have been correctly specified in config.php

这是我今天遇到的最多的错误信息,主要还是连接SQLSERVER数据库的问题,总结问题原因主要为如下几点:

  1. 确保已下载了php_dblib.dll文件放在PHP主目录的ext目录下,并修改了php.ini增加extension=php_dblib.dll行,启动PHP时候如果提示Unable to load dynamic library './php_dblib.dll' - 找不到指定的模块,则修改php.ini的extension_dir为正确的绝对路径。
  2. 确保C:\freetds.conf文件已正确的创建。
  3. 检查config.php内的$CFG->dbtype、dbhost、dbname数据库连接信息已经正确的配置好。
  4. 检查SQL Server服务端配置,如登陆账号权限、是否允许TCP/IP连接、是否开启了SQLBrowser(SQL Server Browser)服务。

Warning: mssql_connect() [function.mssql-connect]: Unable to connect to server

这个警告很奇怪,是我在配置Moodle用户使用外部数据库时,登陆出现的错误信息。当我使用外部的MSSQL2005数据库表来检验用户名和密码时,明明设置的外部数据库表里有这条记录,却老是提示登录无效,请重试,运行test.php也提示Successful connection能成功连接到数据库,后面将外部数据库的登陆用户名设置为sa,问题解决。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多