You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP连接SQL Server报错:用户'administrator'登录失败

解决PHP连接SQL Server时的18456登录失败错误

针对你遇到的SQL Server登录失败(错误码18456)问题,结合你已完成的配置,按以下步骤排查:

  • 确认SQL Server认证账号的有效性
    用Windows身份登录SSMS,展开「安全性」→「登录名」,找到SQL Server类型的administrator账号:

    • 若不存在,右键「登录名」→「新建登录名」,选择「SQL Server身份验证」,设置用户名和密码,取消勾选「强制实施密码策略」(测试阶段可选),并在「用户映射」中关联gm数据库,赋予相应权限。
    • 若已存在,右键账号→「属性」,切换到「状态」页,确保「登录」选项设为「启用」。
  • 验证账号密码的正确性
    直接用administrator账号和密码tes通过SSMS的「SQL Server身份验证」登录。如果这里失败,说明密码错误或账号被锁定,先修正这个问题。

  • 检查TCP/IP端口配置
    打开SQL Server配置管理器:

    1. 展开「SQL Server网络配置」→「MSSQLSERVER的协议」,右键「TCP/IP」→「属性」。
    2. 在「IP地址」页,找到「IPAll」节点,确认「TCP端口」为1433(默认),且所有启用的IP地址的「TCP端口」一致。
    3. 确保「TCP/IP」协议的「已启用」设为「是」,修改后重启SQL Server服务。
  • 修正连接字符串的服务器地址
    如果SQL Server使用非默认端口,连接时必须指定端口,例如:

    $serverName = "192.168.0.6,1433";
    

    同时确认Web服务器能ping通192.168.0.6,网络无阻断。

  • 检查防火墙规则
    在SQL Server所在机器(192.168.0.6)的Windows防火墙中,添加入站规则,允许1433端口(或自定义端口)的TCP流量;同时确保Web服务器的防火墙允许出站访问该端口。

  • 尝试Windows身份认证(备选方案)
    若Web服务器和SQL Server在同一环境,可改用Windows身份认证简化配置:

    $serverName = "192.168.0.6";
    $connectionInfo = array("Database"=>"gm");
    $conn = sqlsrv_connect($serverName, $connectionInfo);
    

    此时需要给Apache的运行账号(如LOCAL SERVICE或指定的域账号)在SQL Server中添加登录权限,并赋予gm数据库的访问权限。

内容的提问来源于stack exchange,提问作者ITG

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 18:22:38