Laravel迁移找不到驱动程序

时间:2020-11-10 08:30:59

标签: php laravel mysql-connector

我尝试制作php artisan migrate

时遇到此错误

   Illuminate\Database\QueryException 

  could not find driver (SQL: select * from information_schema.tables where table_schema = lsapp and table_name = migrations and table_type = 'BASE TABLE')

  at vendor/laravel/framework/src/Illuminate/Database/Connection.php:671
    667|         // If an exception occurs when attempting to run a query, we'll format the error
    668|         // message to include the bindings with SQL, which will make this exception a
    669|         // lot more helpful to the developer instead of just the database's errors.
    670|         catch (Exception $e) {
  > 671|             throw new QueryException(
    672|                 $query, $this->prepareBindings($bindings), $e
    673|             );
    674|         }
    675| 

      +34 vendor frames 
  35  artisan:37
      Illuminate\Foundation\Console\Kernel::handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))

我已经在phpmyadmin上创建了数据库。这是我的.env文件的配置

DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=lsapp
DB_USERNAME=root
DB_PASSWORD=

这里是我的config / database.php中mysql的配置

'mysql' => [
            'driver' => 'mysql',
            'url' => env('DATABASE_URL'),
            'host' => env('DB_HOST', 'localhost'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', 'lsapp'),
            'username' => env('DB_USERNAME', 'root'),
            'password' => env('DB_PASSWORD', ''),
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'prefix_indexes' => true,
            'strict' => true,
            'engine' => null,
            'options' => extension_loaded('pdo_mysql') ? array_filter([
                PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
            ]) : [],
        ]

帮我解决这个问题

4 个答案:

答案 0 :(得分:0)

您可以检查pdo_mysql文件中的php.ini扩展名是否已激活。

答案 1 :(得分:0)

在您的 php.ini 配置文件中,取消注释扩展名,删除;

extension=php_pdo_mysql.dll

如果您使用的是 Linux ,请执行以下操作:

extension=pdo_mysql.so

然后重新启动服务器。

如果这不适用于您,则可能需要将 pdo_mysql 扩展安装到您的php库中。

答案 2 :(得分:0)

可能是您使用了两个或多个版本的 php。所以你最好这样做:

sudo apt install php-mysql

这样您就可以确保在每个版本上都安装了 pdo_mysql 扩展。

此后只需重新启动 apache2:sudo systemctl restart apache2

答案 3 :(得分:0)

我在这个设置中遇到了同样的问题:Laravel、composer、nginx、mariadb 和 Rocky Linux 8 上的 php8。在运行 php artisan migrate 时,我收到了 mysql 找不到驱动程序的错误。我安装了 php-mysql,然后一切正常。

sudo dnf install php-mysql -y

sudo yum install php-mysql y

然后

sudo systemctl restart php-fpm

祝你好运,希望这会有所帮助。

失败 enter image description here

工作 enter image description here