我可以使用以下凭据从客户端PC连接到SQL Server Express。
server: 192.168.44.96'sqldb
auth: windows auth
user name: domain'user
pw: 1234!
有一个 LAMP 服务器尝试连接到上面的 SQL 服务器,PHP 如下所示:
$server = '192.168.44.96'sqldb';
$username = 'domain'user';
$password = '1234!';
$database = 'testing123';
$connection = mssql_connect($server, $username, $password);
if($connection != FALSE){
echo "Connected to the database server OK<br />";
}
else {
die("Couldn't connect" . mssql_get_last_message());
}
if(mssql_select_db($database, $connection)){
echo "Selected $database ok<br />";
}
else {
die('Failed to select DB');
}
页面显示"无法连接".log错误显示"无法连接OT服务器:192.168.44.96"。
我还在 php 中设置了 mssql.secure_connection = On.ini并重新启动了 apache2。
有什么想法吗?
谢谢!
我不能评论PHP部分,我只知道SQL Server。
但我可以告诉你:这不是Windows身份验证的工作方式。
不能使用 Windows 身份验证,然后将用户名和密码显式传递给服务器。您需要执行以下操作之一:
- 使用 SQL Server 身份验证并显式传递用户名和密码
- 使用 Windows 身份验证,不要传递用户名和密码 - 您将自动与活动的 Windows 用户连接。
由于您使用的是Linux服务器,因此我很确定您不能使用Windows身份验证。因此,您必须使用 SQL 身份验证(需要在全新 SQL Server 安装中启用(,并且必须在 SQL Server 上创建一个用户。
如果您有默认的 sqlexpress 安装,则可能需要将 sql 服务器配置为允许远程访问连接。我也不知道你是否可以连接Windows身份验证。在 sql 服务器上,您还可以设置 sql 身份验证并使用 uid=;p wd=。