【发布时间】:2020-05-11 01:13:45
【问题描述】:
我已按照https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server?view=sql-server-ver15 和https://docs.microsoft.com/en-us/sql/connect/php/installation-tutorial-linux-mac?view=sql-server-ver15 的指南进行操作,PHP 正在查找驱动程序/服务器,但现在我遇到了身份验证错误。
已验证服务器已配置为“SQL Server 和 Windows 身份验证模式”并允许远程连接到服务器。
为了得到这个错误,我相信这意味着代码至少正在连接并尝试与服务器进行身份验证(将服务器更改为一些无意义的服务器名称/位置会产生超时错误) - 相当肯定这消除了任何问题这将在身份验证步骤之前进行。
仍然,我收到如下错误...
PDOException: SQLSTATE[28000]: [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]用户“用户名”登录失败。在 /var/www/html/connect.php:10 堆栈跟踪: #0 /var/www/html/connect.php(10): PDO->__construct('sqlsrv:Server=S...', 'username', 'password') #1 {main}root@containerIdGoesHere:/var/www/html
<?php
$user = 'username';
$pass = 'password';
try {
$pdo = new PDO("sqlsrv:Server=SomeServer,1433;Database=SomeDb", $user, $pass);
$pdo->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(Exception $e) {
echo 'See error log';
$elog = fopen('errorlog.txt', 'w') or die("Couldn't open file");
fwrite($elog, $e);
fclose($elog);
}
注意:我已经从我的代码中删除了所有敏感信息...所以我使用的用户名和密码不是“用户名”和“密码”,并且与问题无关。
【问题讨论】:
-
您的脚本似乎正在连接到数据库,因为它针对无效凭据而不是连接错误引发错误。在您的错误中,用户名是它尝试连接的“用户名”,这是正确的还是您替换了它以隐藏真实的用户名?
-
我编辑了我的真实用户名并替换为假值
-
抱歉,当您实际连接到服务器时,我删除了我的原始评论,问题在于您提供的凭据
-
好的,是否可以尝试使用不同的凭据集?
-
也试过了:(
标签: php sql-server docker sqlsrv