【问题标题】:Unable to connect to remote SQL database from WAMP Server using PHP 7.1无法使用 PHP 7.1 从 WAMP 服务器连接到远程 SQL 数据库
【发布时间】:2018-07-26 02:08:11
【问题描述】:

我已尝试在互联网上搜索此问题,但似乎无法找到解决方案,因此如果这是重复的,我提前道歉,因为我似乎找不到任何对我的情况有帮助的东西。

我已经安装了一个新的 WAMP 3.1.3 服务器,我正在尝试运行一个 Laravel 5.6 应用程序。该应用程序连接到网络上的远程 MSSQL 数据库,我使用相同的 PHP 版本(但 Ubuntu)在我的 Homestead 测试环境中成功运行。

在我的 WAMP 服务器(Microsoft Server 2016)上,我安装了来自 https://github.com/Microsoft/msphpsql/releases/tag/v5.3.0 的 PHP 7.1 SQL 驱动程序。我已经编辑了我的 php.ini 文件以启用驱动程序,如下所示:

[PHP_SQLSRV]
extension=php_sqlsrv_71_ts.dll
[PHP_PDO_SQLSRV]
extension=php_pdo_sqlsrv_71_ts.dll

我可以在 WAMP 托盘实用程序中直观地看到 php_pdo_sqlsrv_71_tsphp_sqlsrv_71_ts 已勾选并启用了 PHP 扩展。我运行了php -m,可以看到以下模块已安装并启用:

...
PDO
pdo_mysql
pdo_sqlite
pdo_sqlsrv
...

我已经运行了 phpinfo() 并且可以看到 pdo_sqlsrv 也已安装:

但是,当我尝试连接到远程数据库时,我收到以下错误: Illuminate\Database\QueryException: SQLSTATE[28000]: [Microsoft][ODBC Driver 13 for SQL Server][SQL Server]Login failed for user ...

我使用窗口身份验证作为数据库登录,我已经在我的 WAMP 服务器上安装了 SQL Management Studio,并使用我的 Windows 凭据成功连接到数据库,因此我可以验证这不是用户名或密码问题。

我可以确认我的 .env 文件中的所有详细信息都是正确的,并且是我的 Homestead 测试环境的完整副本。

我继续尝试为 SQL Server 安装 ODBC 驱动程序 13,但是,在安装时出现以下错误: Installation of ODBC Driver 13 for SQL Server failed because a higher version already exists on the machine.

当我检查我安装的程序时,它显示版本 11 和 13 已经安装:

我也尝试启用 php_odbcphp_pdo_odbc 模块,但这也没有任何区别。

我的 WAMP 设置如下所示:

我真的不知道还能尝试什么。也许我错过了什么?

【问题讨论】:

    标签: php sql-server odbc wamp php-7.1


    【解决方案1】:

    原来它不喜欢我尝试通过 Windows 身份验证访问数据库。感谢这篇帖子Microsoft ODBC Driver 13 for SQL Server : Login failed for user 'sa' 我能够确定 SQL 抛出了一个关于不喜欢我的用户名/密码的错误。

    奇怪的是,即使我可以在同一台机器上通过 Management Studio 使用我的 Windows 凭据访问远程数据库,但 PHP 驱动程序肯定是另一回事。

    我针对数据库创建了一个新用户帐户,并且能够登录没有问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-22
      • 1970-01-01
      相关资源
      最近更新 更多