无法从CodeIgniter 2.1.3连接到本地SQL Server Express实例,我缺少什么?

问题描述 投票:1回答:1

我将开始说我尝试了几乎所有我在互联网上找到的内容包括以下列表:

我没有尝试过什么?正如许多答案所说,使用Microsoft SQL Server扩展。

以下是我的database.php配置的样子:

$active_group = 'mssql_local';

$db['mssql_local']['hostname'] = 'localhost:1433'; // RNDPC\SQLEXPRESS:1433
$db['mssql_local']['username'] = 'ssUser';
$db['mssql_local']['password'] = '******';
$db['mssql_local']['database'] = 'ssDB';
$db['mssql_local']['dbdriver'] = 'mssql';
$db['mssql_local']['dbprefix'] = '';
$db['mssql_local']['pconnect'] = false;
$db['mssql_local']['db_debug'] = false;
$db['mssql_local']['cache_on'] = false;
$db['mssql_local']['cachedir'] = '';
$db['mssql_local']['char_set'] = 'utf8';
$db['mssql_local']['dbcollat'] = 'utf8_general_ci';
$db['mssql_local']['swap_pre'] = '';
$db['mssql_local']['autoinit'] = true;
$db['mssql_local']['stricton'] = false;
$db['mssql_local']['port']     = 1433;

但我在日志上看到以下“警告”:

错误 - 2019-03-20 10:18:31 - >严重性:警告 - > mssql_connect():无法连接到服务器:localhost:1433,1433 /var/www/html/sseditor/codeigniter/2.1.3 /system/database/drivers/mssql/mssql_driver.php 63

这是mssql_driver.php的片段:

56  function db_connect()
57  {
58      if ($this->port != '')
59      {
60          $this->hostname .= ','.$this->port;
61      }
62
63      return @mssql_connect($this->hostname, $this->username, $this->password);
64  }

这里有没有更好的主意?我用完了:|

php sql-server codeigniter codeigniter-2
1个回答
1
投票

经过几个小时的头痛我发现问题/解决方案。我即将删除这个问题,但我更愿意回答自己,即使这对我的声誉造成问题,但我相信我可以节省一些时间和精力。

首先,我完全忘了将这部分添加到OP(为此道歉)apache和PHP在CentOS VM(Vagrant + VBox)中运行。

问题是:运行LAMP环境的guest虚拟机对主机不了解并且有意义。

解决方案:将主机IP地址和NS添加到guest虚拟机上的/etc/hosts文件中。

190.168.56.1    RNDPC\SQLEXPRESS SQLEXPRESS

这解决了以下消息的问题:

无法连接到服务器:RNDPC \ SQLEXPRESS:1433,1433

第二个问题与:

RNDPC\SQLEXPRESS:1433,1433

因为驱动程序如果指定参数port,则添加,port

解决方案:从database.php中删除port参数,并将末尾端口的“硬编码”移除到host定义。

现在我的database.php看起来像:

$db['mssql_common']['hostname'] = 'RNDPC\SQLEXPRESS:1433';
$db['mssql_common']['username'] = 'ssUser';
$db['mssql_common']['password'] = '*****';
$db['mssql_common']['database'] = 'ssDB';
$db['mssql_common']['dbdriver'] = 'mssql';
$db['mssql_common']['dbprefix'] = '';
$db['mssql_common']['pconnect'] = false;
$db['mssql_common']['db_debug'] = false;
$db['mssql_common']['cache_on'] = false;
$db['mssql_common']['cachedir'] = '';
$db['mssql_common']['char_set'] = 'utf8';
$db['mssql_common']['dbcollat'] = 'utf8_general_ci';
$db['mssql_common']['swap_pre'] = '';
$db['mssql_common']['autoinit'] = true;
$db['mssql_common']['stricton'] = false;

希望这有助于将来:)

© www.soinside.com 2019 - 2024. All rights reserved.