gpt4 book ai didi

php - Laravel MS SQL 登录超时已过期

转载 作者:行者123 更新时间:2023-12-05 04:01:57 30 4
gpt4 key购买 nike

我正在运行带有 nginx 和 php-fpm 的 Ubuntu 18.04

在 laravel 中,我尝试连接到外部 MS SQL Server。

我的 .env 数据库设置:

DB_CONNECTION=sqlsrv
DB_HOST=127.20.2.10
DB_PORT=1433
DB_DATABASE=DATA
DB_USERNAME=saWeb
DB_PASSWORD='PASSWORD'

我的配置/database.php:

    'default' => env('DB_CONNECTION', 'sqlsrv'),        
'sqlsrv' => [
'driver' => 'sqlsrv',
'host' => env('DB_HOST', '127.20.2.10'),
'port' => env('DB_PORT', '1433'),
'database' => env('DB_DATABASE', 'DATA'),
'username' => env('DB_USERNAME', 'saWeb'),
'password' => env('DB_PASSWORD', 'PASSWORD'),
'charset' => 'utf8',
'prefix' => '',
'prefix_indexes' => true,
],

Laravel 得到错误:

SQLSTATE[HYT00]: [unixODBC][Microsoft][ODBC Driver 17 for SQL Server]Login timeout expired

我重新安装了 sql 驱动程序(pdo_sqlsrv 和 sqlsrv)。

我做了一个文件:sqltest.php:

<?php
$host = "172.20.2.10";
$user = "saWeb";
$password = "PASSWORD";
$dbname="DATA";
$options = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_CASE => PDO::CASE_NATURAL,
PDO::ATTR_ORACLE_NULLS => PDO::NULL_EMPTY_STRING
];

try {
$connection = new PDO("sqlsrv:Server=$host,1433; Database=$dbname", $user, $password);


} catch(PDOException $e) {
die("Database connection failed: " . $e->getMessage());
exit;
}
echo"Connection Successful";
?>

输出为:连接成功

另一个尝试:

<?php
$serverName = "172.20.2.10";
$connectionOptions = array(
"Database" => "DATA",
"Uid" => "saWeb",
"PWD" => "PASSWORD"
);


$conn = sqlsrv_connect($serverName, $connectionOptions);

$tsql= "SELECT @@Version as SQL_VERSION;";

$getResults= sqlsrv_query($conn, $tsql);


if ($getResults == FALSE)
die(FormatErrors(sqlsrv_errors()));
?>
<h1> Results : </h1>
<?php
while ($row = sqlsrv_fetch_array($getResults, SQLSRV_FETCH_ASSOC)) {
echo ($row['SQL_VERSION']);
echo ("<br/>");
}
sqlsrv_free_stmt($getResults);
function FormatErrors( $errors )
{
/* Display errors. */
echo "Error information: <br/>";

foreach ( $errors as $error )
{
echo "SQLSTATE: ".$error['SQLSTATE']."<br/>";
echo "Code: ".$error['code']."<br/>";
echo "Message: ".$error['message']."<br/>";
}
}
?>

输出:Microsoft SQL Server 2014 (SP1-GDR) (KB4019091) - 12.0.4237.0 (X64) Jul 5 2017 22:03:42 Copyright (c) Microsoft Corporation Standard Edition (64-bit) o​​n Windows NT 6.3(内部版本 9600:)(管理程序)

我可以在没有 Laravel 的情况下连接 SQL Server,我的 Laravel 配置有什么问题?

最佳答案

你的测试中有 2 个 ips 测试 172.20.2.10 和 127.20.2.10.. 可能是一个错字,你必须在 .env 和 config/database.php 中设置的是 172.20.2.10

关于php - Laravel MS SQL 登录超时已过期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54827209/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com