【问题标题】:Laravel: PDO Exception, cannot find driver even though the driver is installed and tested [duplicate]Laravel:PDO异常,即使驱动程序已安装和测试也找不到驱动程序[重复]
【发布时间】:2016-11-19 03:26:21
【问题描述】:

我正在开发一个必须连接到现有 MS SQL Server 数据库的 Laravel 5.1 项目。我的项目目前在使用 Apache 2.4.18 的 Ubuntu 16.04 LTS 服务器上。我已经在机器上安装了适用于 SQL Server(版本 13.0.0.0)的 Microsoft ODBC Linux 驱动程序,并使用 sqlcmd 命令手动对其进行了测试:

sqlcmd -S DatabaseIPAddress -U DatabaseUsername

一切正常。我可以登录数据库没有问题。但是,当我使用 php artisan 迁移我的数据库时,它不起作用。我得到了错误:

  [PDOException]
  could not find driver

我已经在 database.php 中设置了这个:

'sqlsrv' => [
            'driver'   => 'sqlsrv',
            'host'     => env('DB_HOST', 'localhost'),
            'database' => env('DB_DATABASE', 'forge'),
            'username' => env('DB_USERNAME', 'forge'),
            'password' => env('DB_PASSWORD', ''),
            'charset'  => 'utf8',
            'prefix'   => '',
],

数据库登录信息保存在.env文件中,SQL Server设置为默认:

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

对可能发生的事情有任何帮助吗?我在互联网上阅读了很多帖子(herehere)。人们对不同类型的数据库也有类似的问题。他们不得不更改 php.ini 文件的配置,添加一些关于扩展的行。也许沿着这些思路?我在 php.ini 文件中尝试了一些我认为可能有用的东西,例如:

; This is the extension for the Microsoft SQLSRV ODBC Driver.
; The driver seems to be located at this file path.
extionsion=/opt/microsoft/msodbcsql/lib64/libmsodbcsql-13.0.so.0.0

重新启动,测试,但无济于事。在这个问题上,我已经把头撞在墙上一段时间了。任何帮助将不胜感激。谢谢。

【问题讨论】:

标签: php sql-server laravel pdo odbc


【解决方案1】:

按照这些步骤操作
sudo apt-get install php5-mssql
更新/etc/freetds/freetds.conf

[global]  
# TDS protocol version
; tds version = 4.2
tds version = 8.0
client charset = UTF-8`

将此行添加到 php.ini

mssql.charset = "UTF-8"

参考:Laracast discussion

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-12
    • 2019-08-06
    • 2020-01-12
    • 2023-04-01
    • 1970-01-01
    • 2022-11-23
    相关资源
    最近更新 更多