工匠迁移找不到司机

Bom*_*ber 13 php laravel

我正在尝试安装Laravel.我已经安装了Xampp,但是当我尝试使用Xampp我设置数据库时出现错误:

[Illuminate\Database\QueryException]找不到驱动程序(SQL:select*from information_schema.tables where table_schema = homestead和table_name = migrations)[PDOException]找不到驱动程序

我的config.database文件具有相关的连接:

'connections' => [

    'sqlite' => [
        'driver' => 'sqlite',
        'database' => env('DB_DATABASE', database_path('database.sqlite')),
        'prefix' => '',
    ],

    'mysql' => [
        'driver' => 'mysql',
        'host' => env('DB_HOST', '127.0.0.1'),
        'port' => env('DB_PORT', '3306'),
        'database' => env('DB_DATABASE', 'forge'),
        'username' => env('DB_USERNAME', 'forge'),
        'password' => env('DB_PASSWORD', ''),
        'unix_socket' => env('DB_SOCKET', ''),
        'charset' => 'utf8mb4',
        'collation' => 'utf8mb4_unicode_ci',
        'prefix' => '',
        'strict' => true,
        'engine' => null,
    ],

    'pgsql' => [
        'driver' => 'pgsql',
        'host' => env('DB_HOST', '127.0.0.1'),
        'port' => env('DB_PORT', '5432'),
        'database' => env('DB_DATABASE', 'forge'),
        'username' => env('DB_USERNAME', 'forge'),
        'password' => env('DB_PASSWORD', ''),
        'charset' => 'utf8',
        'prefix' => '',
        'schema' => 'public',
        'sslmode' => 'prefer',
    ],

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

],
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

Hap*_*tel 32

您还需要安装 PHP-MySQL 驱动程序:

sudo apt install php-mysql
Run Code Online (Sandbox Code Playgroud)


小智 23

在您的php.ini配置文件中,只需取消注释扩展名:

;extension=php_pdo_mysql.dll
Run Code Online (Sandbox Code Playgroud)

(您可以在安装堆栈服务器的php文件夹中找到您的php.ini文件.)

如果您使用的是Windows,请执行以下操作:extension=php_pdo_mysql.dll

如果您使用的是Linux,请执行以下操作:extension=pdo_mysql.so

并快速重启服务器.

如果这不适合你,你可能需要在你的php库中安装pdo_mysql扩展.

  • 也可能是缺少整个php-mysql扩展名。所以也许也像这样:sudo apt install php7.3-mysql(change 7.3 whit your php ver) (4认同)
  • 对于 php 版本 8.2.5,其: `extension=pdo_mysql` 只需在 php.ini 文件中搜索 `pdo_mysql` 而不是 `php_pdo_mysql`,然后取消注释。 (3认同)

Ali*_*_Hr 23

如果你已经安装phpmysql在你的 linux 机器上,php 需要php-mysql扩展来与 mysql 通信。所以请确保您还使用以下方法安装了此扩展:

sudo yum install php-mysql 在基于 redhat 的机器上。

sudo apt-get install php-mysql 在 debian 机器中。

  • 这个答案在 ubuntu 18.04 中对我有用,谢谢@Ali_Hr (3认同)

Y. *_*gha 14

我遇到了同样的问题,但是在运行这行代码之后。

sudo apt install php-mysql
Run Code Online (Sandbox Code Playgroud)

完毕。


Hir*_*lus 9

请按照以下步骤解决相同的错误。

然后,发生此类错误的linux命令,首先,检查您的php.ini文件

If your php.ini file exists then in configuration file simply uncomment the extension:

;extension=php_pdo_mysql.dll 

Else follow below steps

step1:php -v

step2: sudo apt-get install php7.0-mysql

step3: service apache2 restart

step4: php artisan migrate
Run Code Online (Sandbox Code Playgroud)


Maz*_*kah 9

我知道这有点晚了,但是我正在为仍在 Windows 上遇到此问题的任何人回答这个问题(使用 XAMPP)。

步骤 1. 验证您的 PHP 版本是否不匹配。为此,打开 routes/web.php 并创建一个简单的路由来返回 php 信息,如下所示:

Route::get('/', function() {
   return response()->json([
    'stuff' => phpinfo()
   ]);
})
Run Code Online (Sandbox Code Playgroud)

php信息

and compare this with output from your command line
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

As we can see, in my case there is a mismatch, this usually happens if you have multiple versions of php installed.
Run Code Online (Sandbox Code Playgroud)

步骤 2. 将您的 xampp 使用的 php 版本添加到您的系统路径 在此处输入图片说明

步骤 3. 验证您在 php.ini 文件中启用了扩展。注意。确保您正在编辑 phpinfo() 命令结果中“加载的配置文件”条目下显示的 php.ini 文件。 在此处输入图片说明


小智 9

在您的php.ini配置文件中,只需取消注释扩展即可:

;extension=pdo_mysql
Run Code Online (Sandbox Code Playgroud)

(您可以在安装服务器的 php 文件夹中找到 php.ini 文件。)

使这个

extension=pdo_mysql
Run Code Online (Sandbox Code Playgroud)

现在您需要在 find DB_DATABASE=write 中配置您使用的数据库名称而不是迁移,就像我使用我的数据库并且数据库名称是“abc”一样,我需要在那里写入DB_DATABASE=abc并保存该 .env 文件并再次运行命令

php artisan migrate
Run Code Online (Sandbox Code Playgroud)

所以运行后你会得到一些消息,例如:

php artisan migrate
Migration table created successfully.
Run Code Online (Sandbox Code Playgroud)


MD *_*lam 7

确保你已经安装了php-mysql,pdo 需要 php-mysql 才能正常运行。如果不是,你可以简单地输入

sudo apt install php-mysql
Run Code Online (Sandbox Code Playgroud)


Kev*_*lvo 6

在 Windows 和 PHP 7.4.5 中,转到 php.ini 并取消注释此行

extension=pdo_mysql
Run Code Online (Sandbox Code Playgroud)


Fel*_*hes 6

此错误对于所有 SQL 驱动程序都是相同的,因此对于不使用MySQL 的用户,请尝试安装SQL 驱动程序...

SQL 精简版:

sudo apt install php-sqlite3
Run Code Online (Sandbox Code Playgroud)

PostgreSQL:

sudo apt install php-pgsql
Run Code Online (Sandbox Code Playgroud)

  • 对我来说,我需要为其安装确切的 php 版本,例如 php7.4-pgsql (2认同)

小智 5

我是 Windows 和 XAMPP 用户。什么工作对我来说是增加extension=php_pdo_mysql.dll两个php.ini的XAMPP和php.iniC:\php\php.ini

在你的 cmd 中运行这个命令来知道你的配置文件在哪里

php -i | find /i "Configuration File