Я следовал инструкциям в 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 Сервер и Windows Режим аутентификации» и разрешает удаленные подключения к серверу.
Чтобы получить эту ошибку, я полагаю, это означает, что код по крайней мере соединяется и пытается аутентифицироваться с сервером (изменение сервера на какое-то бессмысленное имя / местоположение сервера приводит к ошибке тайм-аута) - достаточно точно, что устраняет любые проблемы, которые могут возникнуть до шага аутентификации.
Тем не менее я получаю сообщение об ошибке следующим образом ...
PDOException: SQLSTATE [28000]: [Microsoft] [ ODB C Драйвер 17 для SQL Сервер] [SQL Сервер] Ошибка входа пользователя 'username'. in / var / www/html/connect.php: 10 Трассировка стека: # 0 / var / www/html/connect.php (10): конструкция PDO -> __ («sqlsrv: Server = S ...», «имя пользователя», «пароль») # 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);
}
Примечание: я удалил любую конфиденциальную информацию из своего кода ... поэтому имя пользователя и pw I ' Я использую не «имя пользователя» и «пароль» и не связаны с проблемой.