PHP artesano Hind pipe nut encontrar controlador bajo XAMPP

Uso XAMPP en Windows 10, y cuando corro php artisan migrate Recibo este mensaje de error:

Illuminate\Database\QueryException

\could not find driver (SQL: select * from information_schema.tables donde table_schema = mydb y table_name = migraciones y table_type = "Tabla del agua"

Trato de usar MySQL como servidor de bases de datos. Cuando corro php -m Tengo lo siguiente.

[PHP Modules]
bcmath
calendar
Core
ctype
curl
date
dom
filter
hash
iconv
json
libxml
mbstring
mysqlnd
openssl
pcre
PDO
Phar
readline
Reflection
session
SimpleXML
SPL
standard
tokenizer
xml
xmlreader
xmlwriter
zip
zlib

[Zend Modules]

Aquí está mi config/database.php:

php

use Illuminate\Support\Str;

return [
    'default' = env('DB_CONNECTION', 'mysql'),
    'connections' => [
        'sqlite' => [
            'driver' => 'sqlite',
            'url' => env('DATABASE_URL'),
            'database' => env('DB_DATABASE', database_path('database.sqlite')),
            'prefix' => '',
            'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true),
        ],
        'mysql' => [
            'driver' => 'mysql',
            'url' => env('DATABASE_URL'),
            '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' => '',
            'prefix_indexes' => true,
            'strict' => true,
            'engine' => null,
            'options' => extension_loaded('pdo_mysql') ? array_filter([
                PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
            ]) : [],
        ],
        'pgsql' => [
            'driver' => 'pgsql',
            'url' => env('DATABASE_URL'),
            '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' => '',
            'prefix_indexes' => true,
            'schema' => 'public',
            'sslmode' => 'prefer',
        ],
        'sqlsrv' => [
            'driver' => 'sqlsrv',
            'url' => env('DATABASE_URL'),
            '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' => '',
            'prefix_indexes' => true,
        ],
    ],
    'migrations' => 'migrations',
    'redis' => [
        'client' => env('REDIS_CLIENT', 'phpredis'),
        'options' => [
            'cluster' => env('REDIS_CLUSTER', 'redis'),
            'prefix' => env('REDIS_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_database_'),
        ],
        'default' => [
            'url' => env('REDIS_URL'),
            'host' => env('REDIS_HOST', '127.0.0.1'),
            'password' => env('REDIS_PASSWORD', null),
            'port' => env('REDIS_PORT', '6379'),
            'database' => env('REDIS_DB', '0'),
        ],
        'cache' => [
            'url' => env('REDIS_URL'),
            'host' => env('REDIS_HOST', '127.0.0.1'),
            'password' => env('REDIS_PASSWORD', null),
            'port' => env('REDIS_PORT', '6379'),
            'database' => env('REDIS_CACHE_DB', '1'),
        ],
    ],
];

Mis extensiones:

extension=bz2
extension=curl
;extension=ffi
;extension=ftp
extension=fileinfo
extension=gd2
extension=gettext
;extension=gmp
;extension=intl
;extension=imap
;extension=ldap
extension=mbstring
extension=exif      ; Must be after mbstring as it depends on it
extension=mysqli
;extension=oci8_12c  ; Use with Oracle Database 12c Instant Client
;extension=odbc
;extension=openssl
;extension=pdo_firebird
extension=pdo_mysql
;extension=php_pdo_mysql.dll
;extension=pdo_oci
;extension=pdo_odbc
;extension=pdo_pgsql
extension=pdo_sqlite
;extension=pgsql
;extension=shmop

;extension=snmp

;extension=soap
;extension=sockets
;extension=sodium
;extension=sqlite3
;extension=tidy
;extension=xmlrpc
;extension=xsl

La base de datos está en funcionamiento (Lo comprobé con PHPMyAdmin).

¿Alguna idea?

Pregunta hecha hace 3 años, 4 meses, 27 días - Por syntaxsorcerer


2 Respuestas:

  • El error que estás experimentando indica que PHP no puede encontrar el controlador de base de datos necesario para conectarse a MySQL. Aunque has habilitado la extensión pdo_mysql en tu archivo php.ini, parece que PHP no la está cargando correctamente.

    Aquí hay algunas posibles soluciones que puedes probar:

    • Reiniciar XAMPP: Asegúrate de reiniciar XAMPP después de realizar cambios en la configuración de PHP para que los cambios surtan efecto.
    • Verificar archivo `php.ini`: Asegúrate de que estás editando el archivo de configuración `php.ini` correcto. Puedes verificar la ubicación del archivo `php.ini` buscando en la salida de `phpinfo()`.
    • Verificar la carga de la extensión `pdo_mysql`: Puedes verificar si la extensión `pdo_mysql` se está cargando correctamente ejecutando el siguiente código PHP en un archivo y abriéndolo en tu navegador:
    php
    
    

    Busca la sección de pdo_mysql para confirmar que la extensión está activa.

    • Activar la extensión `mysqlnd`: En tu archivo `php.ini`, intenta descomentar la línea `;extension=php_pdo_mysql.dll` y quitar el punto y coma ";" al inicio. Esto activará la extensión `mysqlnd` que es necesaria para la conexión con MySQL.
    • Reiniciar el servidor Apache: Después de realizar cualquier cambio en la configuración de PHP, asegúrate de reiniciar el servidor Apache en XAMPP para que los cambios surtan efecto.

    Una vez que hayas realizado estos pasos, intenta nuevamente ejecutar php artisan migrate y verifica si el problema se ha solucionado. Espero que alguna de estas soluciones te ayude a resolver el error. Si persiste el problema, házmelo saber para intentar otras soluciones.

    Respondida el Dec 19, 2020 a las 15:23 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • Problema:

    Recibes un error "could not find driver" cuando ejecutas php artisan migrate en un entorno XAMPP con PHP 7.4.

    Solución:

    1. Verifica la configuración del archivo php.ini:

    Asegúrate de que la extensión pdo_mysql esté habilitada. Debería tener una línea como la siguiente sin comentar:

    
    extension=pdo_mysql
    

    2. Instala el controlador MySQL:

    Descarga el controlador MySQL (por ejemplo, php_mysql.dll o php_mysqli.dll) desde el sitio web de PHP. Copia el archivo DLL descargado en la carpeta de extensiones de PHP (por ejemplo, C:\xampp\php\ext). Reinicia el servidor Apache en XAMPP.

    3. Reinicia el servidor MySQL:

    Detén y reinicia el servicio MySQL desde el Panel de control de XAMPP.

    4. Verifica la configuración de la base de datos:

    En el archivo de configuración de la base de datos (por ejemplo, config/database.php), asegúrate de que los detalles de conexión de la base de datos sean correctos: Nombre de host: 127.0.0.1 (o localhost) Nombre de usuario: forge (o el nombre de usuario de tu base de datos) Contraseña: forge (o la contraseña de tu base de datos) Nombre de la base de datos: forge (o el nombre de tu base de datos)

    5. Ejecuta el comando composer:

    Ejecuta el siguiente comando para instalar el controlador MySQL:

    
    composer require php:mysql-client
    

    6. Reinicia la línea de comandos:

    Cierra y vuelve a abrir tu terminal o ventana de línea de comandos.

    7. Ejecuta php artisan migrate:

    Intenta ejecutar php artisan migrate nuevamente.

    Consejos adicionales:

    Asegúrate de que tu servidor Apache esté escuchando el puerto 80. Comprueba si hay errores en el archivo de registro de PHP o MySQL. Si el problema persiste, intenta desinstalar y reinstalar XAMPP.

    Respondida el Dec 19, 2020 a las 15:30 - por Gemini

    Votos positivos: 0 | Votos negativos: 0