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:
laravel / framework v5.2.14 requiere ext-mbstring * -> la extensión PHP solicitada mbstring falta en su sistema.
phpunit / phpunit 4.8.22 requiere ext-dom * -> la extensión de PHP solicitada falta en su sistema.
[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