我将开始说我尝试了几乎所有我在互联网上找到的内容包括以下列表:
我没有尝试过什么?正如许多答案所说,使用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 }
这里有没有更好的主意?我用完了:|
经过几个小时的头痛我发现问题/解决方案。我即将删除这个问题,但我更愿意回答自己,即使这对我的声誉造成问题,但我相信我可以节省一些时间和精力。
首先,我完全忘了将这部分添加到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;
希望这有助于将来:)