postgres pgsql pdoexception not from could php mysql laravel pdo laravel-5

pgsql - Laravel 5.4 en PHP 7.0: Excepción PDO-No se pudo encontrar el controlador(MySQL)



pdoexception::("could not find driver") laravel (10)

Tengo un proyecto Laravel 5.4 en mi Ubuntu 14.04 (VPS con Plesk 12.5.30). Después de crear la base de datos y configurar el archivo .env con la información requerida, ejecuté php artisan migrate y se lanzaron excepciones:

[Iluminar / Base de datos / Excepción de consulta]
no se pudo encontrar el controlador (SQL: seleccione * de information_schema.tables donde table_schema = pmaramaldb y table_name = migrations)

[PDOException]
no se pudo encontrar el controlador

Mi archivo .env tiene:

DB_CONNECTION = mysql

DB_HOST = 127.0.0.1

DB_PORT = 3306

DB_DATABASE = pmaramaldb

DB_USERNAME = usuario

DB_PASSWORD = contraseña

He seguido la mayoría de las guías para resolver este error y no hubo ningún resultado positivo:

Habilitación de la solución de extensión:

PDO está habilitado

El archivo php.ini se genera automáticamente, supongo que esto está hecho por Plesk. Al comienzo del archivo dice:

; ¡ATENCIÓN!
;
; NO MODIFIQUE ESTE ARCHIVO PORQUE FUE GENERADO AUTOMÁTICAMENTE,
; Así que todos sus cambios se perderán la próxima vez que se genere el archivo.

Así que lo he intentado de todos modos. Después de eso, reinicié Apache y luego intenté nuevamente ... No funcionó.

Instalación de la solución php7.0-mysql:

También he intentado instalar MySQL en caso de que no sea así:

usuario @ servidor: / var / www / vhosts $ sudo apt-get install php7.0-mysql

Leyendo lista de paquetes ... Hecho

Creando árbol de dependencias

Leyendo la información del estado ... Hecho

php7.0-mysql ya es la versión más nueva.

0 actualizados, 0 se instalarán, 0 para eliminar y 67 no actualizados.

** Solución de instalación de SQL Lite: **

También lo intenté como dice el enlace de pregunta : sudo apt-get install php5-sqlite y el resultado fue:

usuario @ servidor: /var/www/vhosts/system/maramal.io/etc$ sudo apt-get install php5-sqlite

Leyendo lista de paquetes ... Hecho

Creando árbol de dependencias

Leyendo la información del estado ... Hecho

php5-sqlite ya es la versión más nueva.

0 actualizados, 0 se instalarán, 0 para eliminar y 67 no actualizados.

Solución de descarga automática de Composer:

Tampoco funcionó. He intentado el composer dump-autoload y no funcionó.

Después de ejecutar el comando php -i :

DOP

Soporte PDO => habilitado

Controladores PDO =>

...

Versión PHP => 5.6.30-1 + deb.sury.org ~ trusty + 1

Bueno, no estoy seguro de si esto tiene algo que ver con el error, pero la versión que se muestra al ejecutar php -v es:

usuario @ servidor: ~ / ruta $ php -v

PHP 5.6.30-1 + deb.sury.org ~ trusty + 1 (cli)

Copyright (c) 1997-2016 The PHP Group

Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
con Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, por Zend Technologies


Como solución alternativa, asegúrese de haber instalado php7-mysql

intenta ejecutar el comando a continuación

sudo apt install php7.0-mysql


En realidad, estoy bastante seguro de que no conoce sus versiones de PHP y utilizó las rutas incorrectas:

Para la versión PHP de su proveedor (5.6 de sury.org), usaría comandos PHP como "/ usr / bin / php", pero cuando usa versiones PHP diferentes, como por ejemplo las de Plesk, entonces tiene diferentes caminos:

/opt/plesk/php/5.2/bin/php -v /opt/plesk/php/5.3/bin/php -v /opt/plesk/php/5.4/bin/php -v /opt/plesk/php/5.5/bin/php -v /opt/plesk/php/5.6/bin/php -v /opt/plesk/php/7.0/bin/php -v /opt/plesk/php/7.1/bin/php -v

Su PHP: los comandos para posibles versiones adicionales de PHP (7.0 y 7.1 si instaló las versiones de PHP pPA PRINCIPALES de sury.org desde https://launchpad.net/~ondrej/+archive/ubuntu/php ) serían:

/usr/bin/php7.0 -v /usr/bin/php7.1 -v

Muestre los módulos instalados para cada versión de PHP con la cadena de opción "-m" y use la cadena de opción "-i" para obtener información (ejemplo):

/opt/plesk/php/7.0/bin/php -m /opt/plesk/php/7.0/bin/php -i or /usr/bin/php7.0 -m /usr/bin/php7.0 -i

Para usar el "compositor", seguramente también usarías la ruta COMPLETA de tu ejecutable PHP (ejemplo):

/opt/plesk/php/7.0/bin/php composer-setup.php or /usr/bin/php7.0 composer-setup.php

"Compositor" adicional - los comandos son entonces:

/opt/plesk/php/7.0/bin/php composer.phar AND-ADDITIONAL-STRINGS/OPTIONS-TO-BE-INCLUDED or /opt/plesk/php/7.0/bin/php composer.phar AND-ADDITIONAL-STRINGS/OPTIONS-TO-BE-INCLUDED


Falta el controlador de la base de datos. Para resolver el probelem

Primero instale el controlador

Para ubuntu: para la base de datos mysql.

sudo apt-get install php5.6-mysql/php7.2-mysql

También puede buscar otros sistemas de bases de datos.

También puede buscar el controlador:

sudo apt-cache search drivername


Hay un conflicto entre el PHP que usa Apache y el PHP que está vinculado a la línea de comando. (Sucede más a menudo que debería ser honesto).

Lo que generalmente se hace es:

which php

Esto le indica qué php se ejecutará cuando se ejecute en la línea de comando. por ejemplo /usr/bin/php

mv /usr/bin/php /usr/bin/php.old

Luego vincule o copie la versión correcta de PHP a una ruta ejecutable:

ln -s /path/to/php/bin/php /usr/bin/php

o lo siguiente también debería funcionar.

cp /path/to/php/bin/php /usr/bin/php

También sugerido si desea poder instalar modificaciones manualmente:

ln -s /path/to/php/bin/phpize /usr/bin/phpize ln -s /path/to/php/bin/php-config /usr/bin/php-config

De esta manera, su CLI coincidirá con su servidor web.

Actualizar:

Si como se indica en esta respuesta, si está utilizando Ubuntu con múltiples instalaciones alternativas de PHP, puede hacer:

sudo update-alternatives --set php /usr/bin/php<version> sudo update-alternatives --set phar /usr/bin/phar<version> sudo update-alternatives --set phar.phar /usr/bin/phar.phar<version> sudo update-alternatives --set phpize /usr/bin/phpize<version> sudo update-alternatives --set php-config /usr/bin/php-config<version>


Mismo problema, ubuntu 17.10, Laravel 5.5.

$ sudo apt install php7.1-pdo php7.1-mysql

Una buena solución rápida, espero que esto ayude


Ok, una vez experimenté este error ... No sé por qué, pero parece que en php 7.3 hay un problema en relación con los controladores o algo allí, lo que hice fue volver a php 7.2 y todo funcionó bien ...


Puedes probar estos siguientes comandos

php artisan cache:clear php artisan config:clear

Luego reinicie su servidor apache. Luego, .env configurar su archivo .env


Tuve el mismo escenario que tú. Resolví el mío lo siguiente:

1) en su terminal, escriba

php --ini

esto generará la ruta actual del archivo de configuración php.ini.

2) edite php.ini usando vim o su editor preferido.

vim /etc/php.ini

tenga en cuenta que /etc/php.ini es su archivo de ruta para su php.ini. Puede ser diferente en su máquina.

3) find ; extension = php_pdo_mysql.dll y descomente quitando el punto y coma (;)

4) guarda tus cambios de php.ini

** 5) reinicie el servidor web para aplicar los cambios

sudo systemctl restart apache2

** 6) Ahora ejecuta tu comando.

php artesanal migrar

Espero que esto te ayude.


en Linux hacer así

Primero verifique su versión de PHP de esta manera:

php -v

después de obtener el número de versión, por ejemplo, obtengo 7.1 y luego instalo así

sudo apt-get install php7.1-sqlite //for laravel testing with sqlite sudo apt-get install php-mysql //for default mysql sudo apt-get install php7.1-mysql //for version based mysql sudo apt-get install php7.1-common //for other necessary package for php

y necesita reiniciar apache2

sudo service apache2 restart


limpiar el caché artesanal

php artisan cache:clear

y

php artisan migrate:refresh

Eso es