Php sqlsrv_connect工作正常,但laravel失败:TCP提供程序:无法建立连接,因为目标计算机主动拒绝它
不幸的是,我不得不让laravel与sql server对话。。我通常使用mysql。。并迅速发展出对sql server的仇恨 我正在本地主机上运行xampp进行开发。我可以使用navicat和sql server management studio连接并查询本地sql server sqlsrv_connect在php中运行良好,我可以毫无问题地手动运行查询。 mssql_connect在php中运行良好,我可以毫无问题地手动运行查询 但拉威尔失败了 在环境方面:Php sqlsrv_connect工作正常,但laravel失败:TCP提供程序:无法建立连接,因为目标计算机主动拒绝它,php,laravel,sqlsrv,Php,Laravel,Sqlsrv,不幸的是,我不得不让laravel与sql server对话。。我通常使用mysql。。并迅速发展出对sql server的仇恨 我正在本地主机上运行xampp进行开发。我可以使用navicat和sql server management studio连接并查询本地sql server sqlsrv_connect在php中运行良好,我可以毫无问题地手动运行查询。 mssql_connect在php中运行良好,我可以毫无问题地手动运行查询 但拉威尔失败了 在环境方面: DB_CONNECTION
DB_CONNECTION=sqlsrv
DB_HOST=localhost
DB_DATABASE=handheld2
DB_USERNAME=handheld
DB_PASSWORD=thepasswordhere
DB_PORT=1433
在laravel数据库配置中:
'sqlsrv' => [
'driver' => 'sqlsrv',
'url' => env('DATABASE_URL', 'localhost'),
'host' => env('DB_HOST', 'localhost'),
'port' => env('DB_PORT', '1433'),
'database' => env('DB_DATABASE', 'handheld2'),
'username' => env('DB_USERNAME', ''),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'prefix' => '',
'prefix_indexes' => true,
]
我不清楚“url”是什么意思?这与db_主机有何不同
我收到
照亮\数据库\查询异常
SQLSTATE[08001]:[Microsoft][ODBC驱动程序17 for SQL Server]TCP提供程序:无法建立连接,因为目标计算机主动拒绝了它
php中同时启用了php_sqlsrv_72_ts_x64.dll和php_pdo_sqlsrc_72_x64.dll
我是否遗漏了一些简单而明显的东西
编辑:请注意,此代码是有效的
$connectionInfo = array(
"Database"=>"handheld2",
"UID" => "handheld",
"PWD" => "thepasswordhere",
);
$conn = sqlsrv_connect("localhost", $connectionInfo);
if ($conn === false) {
echo "Could not connect.\n";
die(print_r(sqlsrv_errors(), true));
}
$stmt = sqlsrv_query($conn, 'SELECT top 1 * from users where users.id = 1');
if($stmt === false) {
die( print_r( sqlsrv_errors(), true) );
}
while( $row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC) ) {
print_r($row);
}
并从数据库打印出记录。。那么为什么它在这里工作,而不是通过laravel???在供应商的laravels文件中调试。。结果是它试图连接到“andheld2”而不是“handheld2” 改变 'url'=>env('DATABASE_url','handheld2') 到 'url'=>env('DATABASE_url','/handheld2')
在数据库中,配置使其工作。。它显然忽略了第一个字符。。出于某种原因?不管怎样。如果有人发现自己在这里,也许这会有所帮助 在我的头撞了好几个小时后,我的修复方法非常简单。我正在重新安装所有东西(包括Sql Server),我必须打开Sql Server配置管理器(…我最后不得不在windows文件夹中搜索Sql Server Manager,因为我不知道确切的版本号,它是15)
然后,已禁用>SQL Server网络配置>MSSQLSERVER协议>TCP/IP。启用此功能后,请在Windows服务和viola中重新启动SQLSERVER,laravel可以工作。您是否尝试过
php artisan配置:clear
?我刚刚尝试过。。缓存已成功清除,但没有更改我没有SQL Server或Windows,但防火墙中不会出现端口问题?试着把它完全打开,我也认为主机应该以'Server'开头`