无法连接到数据库。连接器返回编号:数据库 sqlsrv_connect 连接失败。

3


我无法将Joomla连接到MSSQL,
一直收到以下错误信息:

无法连接到数据库,连接器返回编号:Database sqlsrv_connect failed


无论我使用MySQLi驱动程序还是我安装的驱动程序(Microsoft SQL Server),
看起来像是驱动程序安装问题,
我能够正常使用Mssql Client连接到同一台电脑...
有人可以发布一份关于如何从头开始在PHP上安装Joomla的MSSQL驱动程序的说明吗?
或者发送一个最新的参考资料以便进行操作?

Joomla 3.4
PHP 5.6
IIS 7.5
MSSQL 2008 R2

如果我将驱动程序切换到:php_sqlsrv_54_ts.dll - 它将从joomla安装程序的“数据库类型”中分散开来。
谢谢。 enter image description here
2个回答

2

显示的Joomla错误不够准确,也不是很有用。
因此,第一步应该修改Joomla代码以找出确切的错误。
修改应用程序根目录中connect()函数中以下代码:

libraries\joomla\database\driver\sqlsrv.php

从以下代码:

// Attempt to connect to the server.
        if (!($this->connection = @ sqlsrv_connect($this->options['host'], $config)))
        {
            throw new RuntimeException('Database sqlsrv_connect failed');
        }

To

// Attempt to connect to the server.
        if (!($this->connection = @ sqlsrv_connect($this->options['host'], $config)))
        {
           throw new RuntimeException("Database sqlsrv_connect failed - Error : ".print_r( sqlsrv_errors(), true));
        }

这将为您提供确切的错误信息,并指导您进行下一步操作。

在安装SQL服务器时需要考虑的另一件事是启用SQL服务器身份验证,因为Joomla默认使用SQL服务器身份验证。
您可以通过检查与上述相同文件中的同一函数来确认Joomla是否使用SQL服务器身份验证。

$config = array(
            'Database' => $this->options['database'],
            'uid' => $this->options['user'],
            'pwd' => $this->options['password'],
            'CharacterSet' => 'UTF-8',
            'ReturnDatesAsStrings' => true);

这是PHP手册,证实了同样的内容。 http://php.net/manual/en/function.sqlsrv-connect.php 您可以在安装期间或从管理工具中启用SQL服务器身份验证。
希望这可以帮到您。

这有助于调试问题。 - JavaSheriff

1
  • 下载 SQLServer 2008 Express、SQLServer 2008 标准版/企业版(R2 或更高版本)
  • 下载 PHP 驱动程序
  • 将 SQLSRV20.EXE 下载到临时目录
  • 运行 SQLSRV20.EXE
  • 在提示时,输入 PHP 扩展目录的路径
  • 如果您使用类似 XAMPP 的 LAMP 堆栈
  • 将 php_sqlsrv_52_ts_vc6.dll 复制到 php/ext 文件夹中

在 php.ini 中添加以下条目

  • Extension=php_sqlsrv_52_ts_vc6.dll
注意:
  1. 如果您需要 PDO 或 vc9 版本 - 请复制适合您需求的 "ts" 版本。
  2. 如果您正在使用通过 FAST-CGI 安装的 PHP 引擎的 IIS,请在 c:\Program Files\php\php.ini 中进行适当更改,并将 dll 复制到 c:\Program Files\php\ext 文件夹中。
现在,您可以通过在安装步骤 4 的下拉列表中选择 SQLServer 2008 来安装 Joomla 2.5。
安装完成后 - 继续导航管理员/站点。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接