“无法找到驱动程序”在 Ubuntu 24.04 的 WSL 2 上出现 SQL Server 错误

问题描述 投票:0回答:1

我在尝试将 Laravel 应用程序连接到 SQL Server 数据库时遇到问题。我在 WSL 2 上使用 Ubuntu 24.04 和 PHP 8.3.11 运行此设置。以下是问题的详细概述以及我迄今为止所做的事情:

  • 安装了适用于 Ubuntu 的 Microsoft ODBC 驱动程序:我按照官方说明安装了适用于 SQL Server 的 ODBC 驱动程序。

  • 安装了

    sqlsrv
    pdo_sqlsrv
    扩展:我使用官方 Microsoft documentation for PHP with FPM 安装了这些扩展。

  • 审查了 Laravel 的

    config/database.php
    :我确保 SQL Server 连接的配置正确且符合预期参数。

  • 更新了

    .env
    文件:我修改了.env文件以指定SQL Server连接参数。

尽管执行了上述所有步骤,当我尝试运行 Laravel 应用程序时,我在尝试登录时收到

could not find driver
错误消息。

附加信息

  • 我可以使用DBeaver成功连接到SQL Server数据库,这表明数据库可以访问并且允许远程连接。
  • 我已验证扩展
    sqlsrv
    pdo_sqlsrv
    是否已正确安装,并且我检查了它们在运行
    php -m
    时是否列出。每个扩展程序都有自己的
    .ini
    文件,但我还在我的
    extension=pdo_sqlsrv.so
    文件中添加了
    extension=sqlsrv.so
    php.ini
    行,以确保扩展程序无论如何都会自动加载。

那么,综上所述,是什么导致 Laravel 尽管安装了

pdo_sqlsrv
驱动程序却无法识别它呢?我可以采取任何其他配置或故障排除步骤来解决此问题吗?

php sql-server laravel ubuntu laravel-10
1个回答
0
投票

解决方案:

我能够通过直接在运行应用程序的容器内安装驱动程序来解决该问题。最初,我尝试在主机上安装 WSL 2 中的驱动程序,但由于应用程序在容器内运行,因此需要在该容器的环境中安装驱动程序。

以下是修复的快速摘要:

  • 访问容器外壳。
  • 按照 Microsoft 官方文档中的相同步骤安装驱动程序。
  • 重新启动容器以确保所有内容正确加载。

执行此操作后,不再出现错误。

© www.soinside.com 2019 - 2024. All rights reserved.