我尝试在VM centos6 x64中连接sqlserver和pdo dblib。运行下面的php页面:
try{
$dsn = "dblib:host=192.168.5.101;dbname=webfilter";
$user = "myuser";
$password = "mypass";
$db = new PDO($dsn, $user, $password);
echo "connection successfull";
}
catch(Exception $e)
{
echo "error message:".$e->getMessage();
}
并打印此页面:“错误消息:SQLSTATE [HY000]无法连接:Adaptive Server不可用或不存在(严重级9)” 这是什么意思 ?我在网上进行简单的搜索,但不是明确的解决方案,并且没有一个帮助我,我的问题不在于连接字符串。
这里有一些phpinfo内容: PDO驱动程序:dblib,mysql,sqlite
味道:freetds
(我可以在Windows主机上ping并登录到sql server)
EDITED 尝试使用tsql命令连接:
root@company-gwfilter:~ # tsql -S 192.168.5.101 -U myuser -P 'mypass' -L webfilter
locale is "en_US.UTF-8"
locale charset is "UTF-8"
using default charset "UTF-8"
Error 20009 (severity 9):
Unable to connect: Adaptive Server is unavailable or does not exist
OS error 111, "Connection refused"
There was a problem connecting to the server
至少我现在可以看到有一个问题..但是无法找到它是什么..我检查了端口sqlserver 1433,我用这个主机设置编辑了freetds.conf但仍然是同样的错误
答案 0 :(得分:0)
我解决了我的问题,更改了sql server实例端口: SQL Server网络配置 - > TCP / IP(启用它) - > IP地址 - > IPAll - > TCP动态端口。 并在Linux中使用相同的端口编辑freetds.conf,然后连接成功。
我希望这可以帮助遇到同样问题的人。