尝试将Laravel Homestead连接到sqlsrv数据库时出现错误网关错误

时间:2018-06-18 11:30:03

标签: laravel-5 pdo sqlsrv php-7.1

我一直在使用Laravel v5一段时间,连接到家园/流浪汉虚拟机并集成到本地MySQL数据库中。但是,我现在需要通过同一个虚拟机远程连接到我网络上的MSSQL数据库。

最初我在尝试使用driver not found连接时遇到sqlsrv错误,但我通过安装php7.1-sybase包来解决这个问题。我现在可以确认php -m表示pdo_dblib已安装并已启用。

我已在.env文件中设置连接详细信息以使用第二个数据库连接:

DB_CONNECTION_SECOND=sqlsrv
DB_HOST_SECOND=<server>
DB_PORT_SECOND=1433
DB_DATABASE_SECOND=<database>
DB_USERNAME_SECOND=<username>
DB_PASSWORD_SECOND=<password>

我可以从我的虚拟机成功ping服务器。

在我的模型中,我指定了$connection$table参数:

/**
 * The database name used by the model.
 *
 * @var string
 */
protected $connection = 'sqlsrv';

/**
 * The database table used by the model.
 *
 * @var string
 */
protected $table = '<tablename>';

在我的控制器中,我只是尝试使用where claus返回单个记录:

/**
 * Display a listing of the resource.
 *
 * @return \Illuminate\Http\Response
 */
public function index()
{



    $employees = Employee::where( 'LastName', '=', 'Bloggs' )->get();



    return $employees;



}

但是,我尝试生成的任何连接都会导致502 Bad Gateway错误。我也尝试连接到网络上的不同数据库,但我仍然得到同样的错误。

1 个答案:

答案 0 :(得分:0)

您似乎添加了新的.env变量。 确保在config / database.php中使用那些*_SECOND变量

在像env('DB_DATABASE', 'somedefaultvalue')这样的database.php中,可能已经有一部分用于将所有添加的变量更改为env('DB_DATABASE_SECOND', 'somedefaultvalue')