无法使用PHP 7.1从WAMP Server连接到远程SQL数据库

时间:2018-07-26 02:08:11

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

我曾尝试在互联网上搜寻此消息,但似乎找不到解决方法,因此如果这是重复的操作,我会道歉,因为我似乎找不到任何可以帮助我解决问题的方法。

我已经安装了新的WAMP 3.1.3 Server,并且正在尝试运行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_sqlsrventer image description here

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

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

我可以确认.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:

enter image description here

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

我的WAMP设置如下:

enter image description here

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

1 个答案:

答案 0 :(得分:0)

原来,我不喜欢尝试通过Windows身份验证访问数据库。多亏了这篇文章Microsoft ODBC Driver 13 for SQL Server : Login failed for user 'sa',我得以确定SQL抛出了一个关于不喜欢我的用户名/密码的错误。

奇怪的是,即使我可以使用Windows凭据通过同一台计算机上的Management Studio访问远程数据库,PHP驱动程序的故事也一定不同。

我针对该数据库创建了一个新的用户帐户,并且能够正常登录。