Could not find driver ao tentar conectar com MySQL

Quando tento acessar a pagina aparece o seguinte erro:

could not find driver (SQL: SELECT * from produtos)

Gostaria de saber o que estou errando.

Controller:

<?php 
namespace estoque\Http\Controllers;

use Illuminate\Support\Facades\DB;

class ProdutoController extends Controller {

    public function lista(){

        $produtos = DB::select ('select * from produtos');
        dd($produtos);
        return '<h1>Listagem de produtos com Laravel</h1>';

    }
}

Configuração MySQL no database.php:

'mysql' => [
        'driver' => 'mysql',
        'host' => env('DB_HOST', 'localhost'),
        'port' => env('DB_PORT', '3306'),
        'database' => env('DB_DATABASE', 'estoque_laravel'),
        'username' => env('DB_USERNAME', 'root'),
        'password' => env('DB_PASSWORD', 'mauricio'),
        'charset' => 'utf8mb4',
        'collation' => 'utf8mb4_unicode_ci',
        'prefix' => '',
        'strict' => true,
        'engine' => null,
    ],

Você configurou o arquivo .env que fica na raiz do Laravel?

configurei sim

eu tirei a configuração dai e coloquei no .env que é o certo
mas da o mesmo erro

Tem que verificar se a extensão está instalado no seu PHP, a PDO e a PDO_MySQL? verifique

como verifico isso?

cria um pagina com esse código

<?php phpinfo(); ?>

e rode no servidor, vai aparecer várias configurações

Referencia

Boa tarde man,
estou com o mesmo problema, entretanto estou usando postgres como banco.
As extensões aparentemente estão Ok

Arquivo .env

DB_CONNECTION=pgsql
DB_HOST=172.17.200.32
DB_PORT=5432
DB_DATABASE=bettaivr
DB_USERNAME=bettaivr
DB_PASSWORD=teste123

Arquivo Database.php

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

E o erro que apresenta quando tento rodar php artisan migrate

In Connection.php line 664:

could not find driver (SQL: select * from information_schema.tables where t
able_schema = public and table_name = migrations)

In Connector.php line 67:

Alguma ideia de como resolver?

Se não me engano, o PDO precisa além dos módulos pŕoprios de cada banco (pdo_mysql, pdo_sqlite, etc…), também do driver nativo, no caso pgsql.so em linux ou pgsql.dll no windows, pesquise a respeito e habilite-o no php.ini, reinicie o servidor (apache/nginx) para ver se consegue conectar…

Esta habilitado o modulo pgsql.dll ( uso wampserver no windows ) Não faço ideia do que pode ser…

Como está o arquivo database.php da pasta config?

Só pra confirmar, há uma chave default com valor mysql, ela está configurada para o psql não está?

Sim, esta… foi o primeiro ponto que olhei. O laravel requisita alguma variavel de sistema pra fazer essas ações? No caso eu queria realizar o comando migrate quando aparece esse erro…

Sinceramente não sei, mas creio que não já que o principal são os módulos que já estão disponíveis…

Esse tópico fala algo a respeito das configs do php.ini em dois locais diferentes, inclusive usando wamp… talvez possa te ajudar, ultimo post…

Eu particularmente prefiro usar linux para desenvolver php, windows não se comunica legal, xampp e wamp ajudam, mas sempre falta alguma coisa pra deixar “cheiroso” :joy:, já em linux os módulos sempre estão disponíveis no repositório, não precisa ficar buscando e baixando dll etc, mas é opinião pessoal minha…

Outra coisa é no DB_HOST, vi que seu IP mostra um diferente, está na mesma rede? Se você estiver usando tudo na mesma máquina, sempre dê preferência para o endereço de loopback (localhost ou 127.0.0.1) evita conflitos de rede e nem precisa sair da sua máquina para achar o servidor…

Boa sorte!

Obrigado man, vou dar uma olhada.
Estou usando o ip de um servidor externo, pra acessar banco e tudo mais… mas vou dar uma procurada nisso que tbm ta me deixando meio intrigado hahahaha
Valeus

Cara vai na sua pasta Raiz do PHP, por exemplo, “C:\php-7.4.6”, entre na pasta e ache o “php.ini”, abra o php.ini, CTRL + F e busque por ;extension=pdo_pgsql, após localizar, retire o “;” salve e tente rodar a migrate

1 curtida