【问题标题】:Can't connect to database with laravel 5无法使用 laravel 5 连接到数据库
【发布时间】:2015-07-10 14:08:25
【问题描述】:

我正在尝试使用 laravel 5 连接到我的 mssql 数据库,但它无法正常工作。我尝试连接不同的 mssql 数据库,所以这不是防火墙问题。我的凭据也是正确的。我在 google 上发现您需要 SQL Server Native Client 11.0 并且我已经安装了它。

这是我在 config/database.php 中的连接数组:

'sqlsrv' => [
            'driver'   => 'sqlsrv',
            'host'     => env('nvt'),
            'database' => env('nvt'),
            'username' => env('nvt'),
            'password' => env('nvt'),
            'charset'  => 'utf8',
            'prefix'   => '',
        ],

我已将默认设置为“sqlsrv”:

'default' => env('sqlsrv','sqlsrv'),

但是当我尝试创建一个表时,我收到了错误:

Connector.php 第 50 行中的 PDOException:找不到驱动程序

有什么问题???

编辑:

我从这里为 sqlsrv 安装了 pdo: http://msdn.microsoft.com/en-us/sqlserver/ff657782.aspx

然后我将它添加到我的 php.ini 文件中: 扩展=\Installaties\php_pdo_sqlsrv_53_nts.dll

但我仍然收到错误消息?

【问题讨论】:

  • 检查是否安装了 PDO 驱动程序。 phpinfo() 会帮你解决这个问题。
  • 你的host、db、user和pass都一样吗?
  • 不,它们不一样。 @Andrew 当我查看 phpinfo() 时发现:PDO 支持启用了 PDO 驱动程序 mysql,sqlite 显然没有启用 mssql。我不是这方面的专家。那么我该如何启用呢?
  • 您使用的是 PHP v5.3 吗?文件名中的_53_ 表示它是特定于php5.3 的版本。如果您正在运行更高版本的 PHP,则还需要不同版本的驱动程序。 (顺便说一句,你应该运行更高版本的 php,因为 5.3 已经结束)

标签: php laravel-5


【解决方案1】:

尝试去掉eve()方法,我的意思是使用下面的方法

'sqlsrv' => [
        'driver'   => 'sqlsrv',
        'host'     => 'nvt',
        'database' => 'nvt',
        'username' => 'nvt',
        'password' => 'nvt',
        'charset'  => 'utf8',
        'prefix'   => '',
    ],

【讨论】:

    【解决方案2】:

    我遇到了类似的问题。尝试直接输入服务器信息而不是使用 env。如果它有效,那么你就知道 Laravel 在读取 .env 文件时遇到了问题。

    【讨论】:

    • 尝试使用我上面提到的方法,它对我有用。
    【解决方案3】:

    我上次在 sqlsrv 中尝试连接时遇到了您的问题。我正在使用 xampp。尝试将 yung php_pdo_sqlsrv_53_nts.dll 放在 ext 文件夹中,将 extension=\Installaties\php_pdo_sqlsrv_53_nts.dll 替换为 extension=php_pdo_sqlsrv_53_nts.dll 并尝试在您的计算机上安装 odbc 11。它对我有用,但不知道为什么。 (不是专家)如果它可以很好地帮助一个人,如果不是,很抱歉给您带来麻烦。感谢您花时间阅读。

    【讨论】:

      【解决方案4】:

      您可以尝试以下任一解决方案

      1. 检查您是否输入了正确的连接参数。通过使用客户端工具连接到数据库进行测试。
      2. 确保为您的计算机配置了正确版本的 sqlsrv。检查 PHP 日志以确保您的网络服务器能够正确加载扩展程序。
      3. 在 env 文件中将端口设置为 null

      作为提示,我不建议任何人在 .env 之外的任何地方设置连接参数(在 config/database 中设置它存在安全风险)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-12-18
        • 2017-11-21
        • 2021-04-21
        • 2014-07-28
        • 2017-01-27
        • 1970-01-01
        • 1970-01-01
        • 2021-10-14
        相关资源
        最近更新 更多