[英]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:
我可以成功连接都使用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.