【问题标题】:mssql connection in linuxlinux中的mssql连接
【发布时间】:2016-02-07 05:16:33
【问题描述】:

我尝试在 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)

已编辑 尝试使用 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 但仍然出现相同的错误

【问题讨论】:

  • 你能从你的服务器ping这个ip192.168.5.101吗???
  • 是的,我可以 ping 并连接 mssql
  • 查看link
  • 我检查并编辑了 freetds.conf 并重新启动了 apache 但还是一样

标签: php pdo


【解决方案1】:

我解决了我的问题,更改 sql server 实例端口: SQL Server 网络配置 -> TCP/IP(启用它) -> IP 地址 -> IPAll -> TCP 动态端口。 并在Linux中用相同的端口编辑freetds.conf然后连接成功。

我希望这对遇到同样问题的人有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-29
    • 2012-06-20
    相关资源
    最近更新 更多