繁体   English   中英

Laravel 5.6框架并且无法使用odbc_connect()连接到mssql服务器

[英]Laravel 5.6 framework and unable to make connection to mssql server using odbc_connect()

尝试使标准Laravel数据库配置sqlsrv模板失败,我已转为使用直接的PHP odbc_connect()方法来尝试通过Laravel 5.6连接到我的工作SQL Server。

我正在公司防火墙后面的工作环境中构建仪表板,并且另一个开发人员已使用以下命令成功创建了连接:

$resource = odbc_connect('Driver={ODBC Driver 13 for SQL Server};Server=xxxxxxxxxx;Trusted_Connection=yes;ApplicationIntent=ReadOnly', null, null)

上面的odbc_connect()已设置为使用我登录的当前网络AD Windows身份验证,但是,我从Laravel收到以下ErrorException:

odbc_connect(): SQL error: [Microsoft][ODBC Driver 13 for SQL Server]Login timeout expired, SQL state S1T00 in SQLConnect

phpinfo:

  • ODBC库:unixODBC
  • PDO驱动程序:mysql,odbc,sqlite,sqlsrv
  • PDO_ODBC:已启用,严格匹配
  • PHP版本7.1.10

我可以成功连接都使用Windows身份验证方法的SQL Server GUI客户端(RazorSQL和Navicat)。 请注意,我正在运行MAC OSX Sierra。

任何帮助将不胜感激。

在链接到无法识别Windows身份验证的文件的obdcinst.ini文件中找到SQL Server的ODBC驱动程序13。 解决的办法是用unixodbc酿造安装freetds,它创建了一个可识别身份验证的库。 然后我换了库。 通过身份验证后,我确实添加了用户名和密码,但是该用户名具有双反斜杠,因此,该用户名将为YOURDOMAIN \\ username。 由于某些原因,Laravel会看到此情况并将其视为域登录,同时删除反斜杠,该请求将发送到服务器,然后允许我自己成功登录以执行查询。

希望这对处于相同情况的任何人有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM