我目前正在全新安装 Laravel 6 并尝试将其连接到我的 Microsoft SQL Server,并且我正在使用 Laragon 在本地提供服务。我已经下载了 SQL Server 的 ODBC 驱动程序。我的 database.php 文件包含:'default' => env('DB_CONNECTION', 'sqlsrv'),...'sqlsrv' => [ 'driver' => 'sqlsrv', 'url' => env('DATABASE_URL'), 'odbc' => true, // I added this line 'odbc_datasource_name' => '{SQL Server}', // I added this line 'host' => env('DB_HOST', 'localhost'), 'port' => env('DB_PORT', '1433'), 'database' => env('DB_DATABASE', 'forge'), 'username' => env('DB_USERNAME', 'forge'), 'password' => env('DB_PASSWORD', ''), 'charset' => 'utf8', 'prefix' => '', 'prefix_indexes' => true, ],我的 .env 包含有效的登录凭据。为了测试我是否可以连接到数据库,我检查了 welcome.blade.php:@php if (DB::connection()->getDatabaseName()) { echo "connected successfully to database ".DB::connection()->getDatabaseName(); }@endphp这在我的页面上回显为:成功连接到数据库testDatabase我已经进入 Tinker 看看我是否可以从我的模型中获得所有员工的集合,即 Carer.php:namespace App;use Illuminate\Database\Eloquent\Model;class Carer extends Model{ protected $table = "dbo.carer"; protected $primaryKey = 'CarerID';} ...$carer = App\Carer::all();哪个返回:Illuminate/Database/QueryException 消息“找不到驱动程序(SQL:从 [dbo].[carer] 中选择 *)”如果我在尝试检索模型数据时找不到驱动程序,这是否意味着我连接到数据库的检查有问题?我是否必须在 Laragon 中做一些特定的事情才能让它在 SQL Server 上工作?谢谢。更新:按照这里和这里的说明,我已经成功地将 PDO 驱动程序添加到我的 php.ini 文件中,并让它与 Laragon 一起运行。当我打印出来时,phpinfo()我现在可以看到 sql servers。我现在得到的错误是:Illuminate/Database/QueryException with message 'SQLSTATE[08001]: [Microsoft][SQL Server 的 ODBC 驱动程序 17]TCP 提供程序:无法建立连接,因为目标机器主动拒绝它。(SQL: 从 [dbo].[carer] 中选择前 1 *)'
1 回答
慕少森
TA贡献2019条经验 获得超9个赞
回答这个问题以防其他人陷入同一点。
我的 Microsoft SQL Server 没有启用 TCP/IP 连接。
你想要:
打开 SQL Server 配置管理器
在 SQL Server 网络配置下,为 MSSQLSERVER 选择协议
右键单击 TCP/IP,然后单击启用
重新启动 SQL Server (MSSQLSERVER)
- 1 回答
- 0 关注
- 101 浏览
添加回答
举报
0/150
提交
取消