gpt4 book ai didi

php - 在centos上使用freetds从php连接到ms sql 2005

转载 作者:可可西里 更新时间:2023-10-31 22:57:20 25 4
gpt4 key购买 nike

我在从 PHP 连接到 MS SQL 2005 时遇到问题。

我可以从 shell 连接,使用...

tsql -S 10.0.0.134 -p 1433  -U gareth 

输入一个简单的查询按预期工作......

1> SELECT @@VERSION AS MSSQL_VERSION
2> go
MSSQL_VERSION
Microsoft SQL Server 2005 - 9.00.4035.00 (Intel X86)
Nov 24 2008 13:01:59
Copyright (c) 1988-2005 Microsoft Corporation
Express Edition on Windows NT 6.1 (Build 7601: Service Pack 1)

但是,从 PHP 脚本中尝试这样做是行不通的...

$test = mssql_connect('10.0.0.134:1433', 'gareth', 'mypass');

... 并生成 mssql_connect() [function.mssql-connect]: 无法连接到服务器错误。

我可以在/usr/lib/php/modules 中看到 mssql.so 模块,phpinfo() 显示模块已加载。

如果有人可以向我展示 freetds.conf 和 odbc.conf 的示例配置,我很乐意改用 odbc_connect

谢谢

最佳答案

这是我可以在 PHP.net 上找到的内容关于你的问题。也许它会帮助你解决它。

This might be obvious to some, but here is a quick tidbit that might save you some time if you are using FreeTDS in Linux:
Be sure that you have these two lines in freetds.conf:
dump file = /tmp/freetds.log
dump file append = yes

so you can tail -f it in the background of debugging the problem. This helped me find my issue on on CentOS Linux:

1) tsql test works

2) php-mssql connection in php also works WHEN RUN FROM THE SHELL

3) running PHP through apache does NOT work.

my /tmp/freetds.log file told me:
net.c:168:Connecting to MYDBSERVER port MYDBPORT
net.c:237:tds_open_socket: MYDBSERVER:MYDBPORT: Permission denied

and the answer was my firewall/SELinux was denying the Apache processes access to connect to the remote MSSQL DB port, but my shell accounts were fine.

关于php - 在centos上使用freetds从php连接到ms sql 2005,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11411453/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com