Laravel to SQL Server (sqlsrv).[PDOException] 找不到驱动程序

2022-08-31 00:30:22

介绍。我的laravel应用程序使用mysql,现在它需要托管在我工作的公司的网络中(我是远程工作者)。这家公司是微软的窥视者,所以我需要将laravel集成到他们的SQL Server中。

我在我的.env中有这个

DB_CONNECTION=sqlsrv
DB_HOST=ip.address.of.server
DB_PORT=3306
DB_DATABASE=my_db
DB_USERNAME=my_username
DB_PASSWORD=my_password

使用后php artisan migrate

错误:

  [PDOException]
  could not find driver

我正在使用Ubuntu,一个专门为我设计的远程盒子(来自我的雇主)。我以前尝试过在我的laravel应用程序中使用sql服务器(使用我的Windows PC)。据我所知,我在xampp php.ini中编辑了一些文本。作为一个新手Linux用户,这对我来说太难了(因为我只使用CLI)。

已编辑 ( 新版本 )

所以我已经从Ubuntu获得了到数据库服务器的连接。我使用了sqlcmd -S <host> -U <username>

我测试了查询(例如),它的工作原理。SELECT * from users_data

现在,我修改了,我添加了这个。config/database.php

'sqlsrv' => [
                'driver'   => 'MSSQL',
                'host'     => env('DB_HOST', 'host.of.the.database'),
                'database' => env('DB_DATABASE', 'my_database'),
                'username' => env('DB_USERNAME', 'my_username'),
                'password' => env('DB_PASSWORD', 'my_pass'),
          'port'     => '1433',
                'prefix'   => '',
            ],

但我得到了一个错误:

[InvalidArgumentException]
  Unsupported driver [MSSQL]

“MSSQL”是我用来配置FreeTDS的名称。


答案 1

对于那些后来的人

确保你使用的PHP版本(对我来说,目前使用的是php 7.1,所以我安装了php7.1-sybase)

sudo apt-get install freetds-common freetds-bin unixodbc php7.1-sybase

司机是

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

您可以使用 tsql 确保连接信息正确无误

TDSVER=8.0 tsql -H Host -U Username -D DatabaseName -p 1433 -P Password

答案 2

也出现了错误,在安装以下软件包后解决了问题:could not find driver

sudo apt-get install freetds-common freetds-bin unixodbc php5-sybase

但是我正在使用驱动程序,这是我的:sqlsrvconfig/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'   => '',
    ],

推荐