从Ubuntu上的PHP连接到SQL Azure
我正试图通过运行在Ubuntu11.04服务器上的PHP连接到SQLAzure数据库 服务器正在运行PHP版本=>5.3.5-1ubuntu7.11 我已经多次使用apt get install安装了freetds bin、freetds common、tdsodbc、odbcinst、php5 odbc和unixodbc。我试图用SSL支持编译FreeTDS,但不确定是否成功 此时,我在尝试使用isql工具连接时收到一个错误“08S01-通信链路故障”。Microsoft的一篇文章将此错误解释为“在SqlDriverConnection函数完成处理之前,驱动程序与驱动程序试图连接的数据源之间的通信链接失败。”对此的一些研究特别指出FreeTDS中缺少SSL支持,但我不清楚如何验证已启用 我将使用PHP数据对象或mssql_*函数连接到SQL Azure数据库。我对PDO不太熟悉,但PDO似乎不一定使用ODBC?我不清楚这一点,我怀疑这会导致我对isql遇到的问题进行故障排除,这些问题与我在PHP中看到的问题无关。isql工具的连接问题是否与PHP中PDO或mssql_*函数的连接问题有关 我最新的尝试是使用PDO:从Ubuntu上的PHP连接到SQL Azure,php,sql-server,azure,azure-sql-database,ubuntu-11.04,Php,Sql Server,Azure,Azure Sql Database,Ubuntu 11.04,我正试图通过运行在Ubuntu11.04服务器上的PHP连接到SQLAzure数据库 服务器正在运行PHP版本=>5.3.5-1ubuntu7.11 我已经多次使用apt get install安装了freetds bin、freetds common、tdsodbc、odbcinst、php5 odbc和unixodbc。我试图用SSL支持编译FreeTDS,但不确定是否成功 此时,我在尝试使用isql工具连接时收到一个错误“08S01-通信链路故障”。Microsoft的一篇文章将此错误解释
<?php
$c = new PDO("odbc:Driver=FreeTDS;Port=1433;Server=sssssssssss.database.windows.net;Database=db_xxxxx_xxx_xxx;UID=db_xxxxx_xxx_xxx_ExternalWriter;PWD=ppppppppp");
?>
/etc/odbc.ini:
[TS]
Description = "test"
Driver = FreeTDS
Server = sssssssssssss.database.windows.net
Port = 1433
Database = db_xxxxxxx_xxx_xxx
/etc/odbcinst.ini
[FreeTDS]
Description = tdsodbc
Driver = /usr/lib/odbc/libtdsodbc.so
如果能帮上忙,我们将不胜感激。我显然在这一点上迷路了。谢谢 我没有专门在Azure上试用过,但在我们这里使用的本地SQL Server机器上,我发现带有PDO的php5 sybase模块比freetds更容易使用:
apt-get install php5-sybase
<?php
$dsn = 'dblib:dbname=TestDB;host=sqlserver;charset=UTF-8';
$dbh = new PDO($dsn, 'username', 'password');
apt get install php5 sybase
在配置FreeTDS和安装FreeTDS时,我遵循了FreeTDS文档。tsql-H sss.database.windows.net-p 1433-U user-p pwd现在返回“无法打开登录请求的服务器'sss'。不允许IP地址为'n.n.n.n'的客户端访问服务器。若要启用访问,请使用windows Azure管理门户或运行…”显然,错误来自Azure,并且连接至少正在进行中。SQL Azure防火墙配置为允许从任何计算机进行连接。
apt-get install php5-sybase
<?php
$dsn = 'dblib:dbname=TestDB;host=sqlserver;charset=UTF-8';
$dbh = new PDO($dsn, 'username', 'password');