postgres pgsql pdoexception not from could php mysql pdo laravel driver

php - pgsql - pdoexception::("could not find driver") laravel



php artesanal migrate throwing[Excepción PDO] No se pudo encontrar el controlador-Uso de Laravel (21)

¡Encontré la solución adecuada para este error! O bien no tiene ninguna base de datos instalada o su base de datos predeterminada en este archivo config / database.php está configurada en alguna otra base de datos como esta

''default'' => ''sqlite'', ''default'' => env(''DB_CONNECTION'', ''sqlite''), //laravel 5.2

¡cambie la configuración predeterminada a la que haya instalado o instale esa base de datos que está predeterminada! Había instalado mysql y php artesanal migrate funcionó después de que cambié esa línea a esto:

''default'' => ''mysql'', ''default'' => env(''DB_CONNECTION'', ''mysql''), //laravel5.2

Tengo una mala experiencia al instalar laravel. Sin embargo, pude hacerlo y pasar al siguiente nivel. Usé generadores y creé mis migraciones. Pero cuando escribo el último comando

php artisan migrate

Lanza una excepción PDOException: no pudo encontrar el controlador.

''mysql'' => array( ''driver'' => ''mysql'', ''host'' => ''localhost'', ''unix_socket'' => ''/Applications/MAMP/tmp/mysql/mysql.sock'', ''database'' => ''database'', ''username'' => ''root'', ''password'' => '''', ''charset'' => ''utf8'', ''collation'' => ''utf8_unicode_ci'', ''prefix'' => '''', ),

Esa es mi configuración en config / database.php.

Intenté buscar en los foros de stackoverflow y laravel y la gente sugiere que es un problema de PDO y no de artesanos o php. Seguí esas sugerencias, como agregar

extension=pgsql.so extension=pdo_pgsql.so

en php.ini

Sin resultado positivo Siempre dice que [PDOException]could not find driver.

¿Alguien puede ayudar a resolver esto?

Entorno que estoy usando: Mac, laravel 4, MAMP PRO con php 5.4.4


Creo que te perdiste el controlador mysql para php5. Ejecutar debajo del comando:

sudo apt-get install php5-mysql /etc/init.d/php5-fpm restart


Debe habilitar específicamente el complemento pdo_mysql. Suponiendo que está utilizando una instalación estándar de PHP, en general, simplemente tendría que agregar esto a su archivo PHP.ini:

extension=pdo_mysql.so

Sin embargo, debe asegurarse de que este archivo exista en el directorio de la extensión.

Agregar pdo_pgsql.so no ayuda porque eso es para PostgreSQL.

Además, debe asegurarse de reiniciar el servidor web después de realizar los cambios en el archivo PHP ini, ya que los cambios pueden no reflejarse de otra manera.


Debe instalar la última versión de php mysql en mi caso soy install php7.1-mysql

Prueba esto

sudo apt-get install php7.1-mysql

Estoy usando la última versión de laravel


En mi caso, no sabía que el PHP ejecutado por Apache era diferente del ejecutado por CLI. Ese podría ser el caso si durante la configuración en httpd.conf usted especificó un módulo de PHP, que no es el predeterminado que usa su CLI.


Esto funcionó conmigo: (para pgsql: use ''pgsql'' en lugar de ''mysql'')

Paso 1)

sudo apt-get install php-mysql

Paso 2)

php artisan config:clear

Paso 3)

php artisan config:cache

Etapa 4)
A continuación, reinicie su servidor, y genere la clave de nuevo y migre, hecho


Esto funcionó para mí:

sudo apt-get install php5-sqlite

Este instaló sqlite para php5, luego ejecuté el comando php artesanal migrate nuevamente y funcionó perfectamente.


Estoy usando ubuntu 14.04

Debajo del comando resolvió este problema para mí.

sudo apt-get install php-mysql

En mi caso, después de actualizar mi versión php de 5.5.9 a 7.0.8 recibí este error, incluidos otros dos errores.

errores:

  1. laravel / framework v5.2.14 requiere ext-mbstring * -> la extensión PHP solicitada mbstring falta en su sistema.

  2. phpunit / phpunit 4.8.22 requiere ext-dom * -> la extensión de PHP solicitada falta en su sistema.

  3. [PDOException]
    no pudo encontrar el controlador

Soluciones:

Instalé estos paquetes y mis problemas desaparecieron.

sudo apt-get install php-mbstring

sudo apt-get install php-xml

sudo apt-get install php-mysql


Instálalo a través de este comando

sudo apt-get install php5-gd

esto funcionó para mí.


Para futuros buscadores En FreeBSD prueba el siguiente

pkg_info | grep php5-pdo_mysql

Si ve la línea vacía a cambio, haga lo siguiente:

cd /usr/ports/databases/php5-pdo_mysql

y hacer la instalación

make install clean

entonces simplemente reinicia tu apache y listo

por ejemplo, sudo /usr/local/etc/rc.d/apache22 restart


Por favor revisa tu archivo Laravel .env también. Asegúrese de que DB_CONNECTION=mysql , de lo contrario no funcionará con MySQL. Trató de cargar algo más.


Puedes usar

sudo apt-get install php7-mysql

o

sudo apt-get install php5-mysql

o

sudo apt-get install php-mysql

Esto funcionó para mí.


Recibí este error para PostgreSQL y la solución es:

sudo apt-get install php7.1-pgsql

Solo necesita usar su versión de PHP instalada, la mía es 7.1. Esto ha solucionado el problema de PostgreSQL.


Si está utilizando Laravel 5.x, y el error consiste en tratar de modificar los atributos de una columna, es posible que el error provenga de un requisito previo que falta.

Prueba esto:

composer require doctrine/dbal

Luego intente ejecutar sus migraciones.

Desde aquí: https://laravel.com/docs/master/migrations#modifying-columns


También recibía el mismo error -> "[PDOException]
no pude encontrar el controlador "

Después de eso usé muchos comandos pero no obtuve ninguna ayuda

Finalmente utilicé el siguiente comando, que resolvió mi problema.

sudo apt-get install php5-sqlite


También recibía el mismo error -> "[PDOException] no podía encontrar el controlador"

Me di cuenta de que el php apuntaba a / usr / bin / php en lugar del lampp / opt / lampp / bin / php, así que simplemente creé y alias

alias php = "/ opt / lampp / bin / php"

también tuvo que actualizar el archivo .env para garantizar que se actualizaran las credenciales de acceso a la base de datos.

Y adivina qué, funcionó!


Tuve el mismo problema y pensé que el sitio web se ejecutaba bajo el php de MAMP, pero cuando llamas por comando, ejecuta Mac (si no se modificó la ruta de bash). tendrás problemas cuando mac no tenga esas extensiones.

ejecute php -i para encontrar las extensiones cargadas, e instale aquellas que perdió. o ejecute ''/ Applications /MAMP/bin/php/php5.3.6/bin/php artisan {your command}'' para usar MAMP''s


Tuve este problema en Debian. El problema era que estaba usando el repositorio dotdeb para paquetes PHP más recientes. Por alguna razón, actualizó php cli a 7.0, mientras que el php binario web se mantuvo php 5.6. Utilicé esta respuesta para vincular la línea de comando de php a la versión 5.6, así:

$ sudo ln -sfn /usr/bin/php5 /etc/alternatives/php


phpinfo() con el mismo problema aquí, y resulta que esto se debe a que PHP en la línea de comandos usa un archivo php.ini diferente de la versión del navegador, por lo que parece que está cargando la extensión correctamente cuando se mira a phpinfo() en una navegador.

Según esta respuesta , solo necesita ejecutar:

php --ini

En la línea de comandos, que le indicará la ruta al archivo php.ini actualmente cargado (probablemente en realidad un archivo php-cli.ini ubicado en el mismo lugar que su archivo php.ini normal).

Una vez que haya encontrado eso, modifíquelo con las extensiones de pdo que desee (en este caso para MySQL):

extension=pdo_mysql.so

O bien, para cualquier otro usuario que esté en Windows utilizando algún tipo de servidor WAMP, probablemente se vea así:

extension=php_pdo_mysql.dll


Laravel Testing con sqlite necesita drivers php pdo sqlite

Para Ubuntu 14.04

sudo apt-get install php5-sqlite sudo service apache2 restart

En ubuntu 16.04 no hay php5-sqlite

sudo apt-get install php7.0-sqlite sudo service apache2 restart


Te falta un controlador PDO.

Primero instala 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

Then Run the cmd php artisan migrate