【问题标题】:How can I connect sql Server in Azure from Linux server with Php?如何从 Linux 服务器与 PHP 连接 Azure 中的 sql Server?
【发布时间】:2016-03-15 09:20:43
【问题描述】:

我一直在为我的 android 应用程序使用 azure 移动服务。 然后我想通过我的本地主机和远程服务器使用 Php 访问我的数据库数据。

我尝试了下面 Azure 文档提供的代码。

$conn = new PDO ( "sqlsrv:server = tcp:MYSERVERNAME.database.windows.net,1433; Database = MY_DATABASE_NAME", "MY_USER_NAME", "MY_PASSWORD" );
try {
    $conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );

} catch ( PDOException $e ) {
    print( "Error connecting to SQL Server." );
    die( print_r( $e ) );

};

当代码在本地主机或远程服务器上运行时,即Linux服务器,我得到以下错误

编辑

我认为这与 Azure 防火墙规则有关,我在 Server

的 Azure 防火墙规则中添加了我的 IP 号

当我尝试通过SQLPro 连接到服务器时,我可以成功连接并开始查询。但我无法通过 Localhost 使用我的 PHP 代码进行连接。

【问题讨论】:

  • 使用 Macbook 的细节无关紧要。您更改了哪个 Azure 防火墙:SQL 数据库服务器防火墙?如果是这样,你是如何设置的? (127.0.0.1 无济于事,因为那是 localhost 地址)。您应该使用该详细信息编辑您的问题。

标签: php sql azure azure-sql-database


【解决方案1】:

您使用的函数PDO sqlsrv:server 需要SQLSRV extensionphp_pdo_sqlsrv_53_nts.dll 一样,但它只兼容在Windows 上运行的PHP。

要在 Unix 中连接到 PHP 中的 SQL 服务器,您可以使用ODBC 扩展名和Microsoft's SQL Server ODBC Driver for Linux

详情可参考http://php.net/manual/en/ref.pdo-sqlsrv.php

【讨论】:

【解决方案2】:

另一个从 Linux 服务器连接到 Azure SQL DB 的建议是使用 sqlshim。 sqlshim 项目旨在在 Linux/OS X 上复制 Microsoft SQL Server Driver for PHP (sqlsrv)。

这里是项目的链接:https://github.com/radsectors/sqlshim

以下是您的安装方法:

Download the latest release from: https://github.com/radsectors/sqlshim/releases
Extract src/sqlshim.php and src/globals.php.
Include it.
require 'src/sqlshim.php';

干杯,
见面

【讨论】:

    【解决方案3】:

    您是否将防火墙例外添加到数据库或数据库实例?

    实例级别(在主机上运行):

    EXECUTE sp_set_firewall_rule N'my_rule','123.0.0.1','123.0.0.1'; 
    --EXECUTE sp_set_firewall_rule N'rule_name','IP_Range_low','IP_Range_high'; 
    

    数据库级别(在目标数据库上运行):

    EXECUTE sp_set_database_firewall_rule N'my_db_rule'; 
    ,'123.0.0.1'  --IP_Range_low
    ,'123.0.0.1'  --IP_Range_high
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多