php artisan migrate throwing [Excepción de PDO] No se pudo encontrar el controlador - Usando Laravel
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
Está lanzando una PDOException - no se 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 artisan o php - Seguí esas sugerencias como agregar
extension=pgsql.so
extension=pdo_pgsql.so
En php.ini
No hay resultado positivo. Siempre dice [PDOException]could not find driver.
Puede alguien por favor ayudar a resolver esto.
Entorno que estoy usando: Mac, laravel 4, MAMP PRO con php 5.4.4
21 answers
Puede 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í.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-09-04 22:10:29
Esto funcionó para mí:
sudo apt-get install php5-sqlite
Esto instaló sqlite para php5, luego ejecuté el comando php artisan migrate nuevamente y funcionó perfectamente.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-04-03 02:37:49
Necesita habilitar específicamente el complemento pdo_mysql. Suponiendo que está utilizando una instalación estándar de PHP, entonces generalmente simplemente necesitaría agregar esto a su PHP.archivo ini:
extension=pdo_mysql.so
Debe asegurarse de que este archivo existe en el directorio de 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 ini PHP, ya que los cambios pueden no ser reflejados de otra manera.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-03-17 19:44:16
Se encontró con el mismo problema aquí, y resulta que esto se debe a que PHP en la línea de comandos utiliza 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 phpinfo()
en un navegador.
De acuerdo con esta respuesta , solo tiene que ejecutar:
php --ini
En la línea de comandos, que le indicará la ruta al php.ini
actualmente cargado (probablemente un archivo php-cli.ini
ubicado en el mismo lugar que su php.ini
file).
Una vez que hayas encontrado eso, modifícalo con las extensiones pdo que quieras (en este caso para MySQL):
extension=pdo_mysql.so
O, para cualquier otro usuario que esté en Windows usando algún tipo de servidor WAMP, probablemente se vea así:
extension=php_pdo_mysql.dll
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 11:47:20
Creo que te perdiste el controlador mysql para php5. Ejecutar el siguiente comando:
sudo apt-get install php5-mysql
/etc/init.d/php5-fpm restart
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-09-05 13:31:51
Por favor revise su archivo Laravel .env
también. Asegúrese de DB_CONNECTION=mysql
, de lo contrario no funcionará con MySQL. Intentó cargar algo más.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-03-27 15:03:49
Tuvo el mismo problema y simplemente calculó que el sitio web se está ejecutando bajo el php de MAMP, pero cuando llama al comando, ejecuta el mac(si no se modifica la ruta de bash). tendrá problemas cuando Mac no tenga esas extensiones.
Ejecute php-i para averiguar las extensiones cargadas, e instale aquellas que se perdió. o ejecutar " /Applications/MAMP/bin/php/php5.3.6/bin/php artisan {comando}' para uso MAMP del
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-04-02 11:49:59
También estaba recibiendo el mismo error > > " [PDOException]
no se pudo encontrar el controlador "
Después de eso usé muchos comandos pero no recibí ninguna ayuda
Finalmente usé el siguiente comando, que resolvió mi problema.
Sudo apt-get install php5-sqlite
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-07-14 07:37:48
Laravel Testing con sqlite necesita controladores 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
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-10-19 12:15:45
Te falta un conductor de DOP.
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
Then Run the cmd php artisan migrate
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-07-28 08:28:48
Estoy deshaciendo ubuntu 14.04
El comando debajo resolvió este problema para mí.
Sudo apt-get install php-mysql
En mi caso, después de actualizar mi versión de php de 5.5.9 a 7.0.8 recibí este error incluyendo 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 * - > el la extensión PHP solicitada dom no está en su sistema.
-
[PDOException]
no se 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
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-08-02 13:18:17
Debe estar instalando 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
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-09-23 03:38:09
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
Paso 4)
A continuación, reinicie su servidor, y generar clave de nuevo y migrarlo, Su Hecho
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-06-04 10:49:16
Para futuros buscadores. En FreeBSD prueba el siguiente
pkg_info | grep php5-pdo_mysql
Si ves la línea vacía a cambio, haz lo siguiente:
cd /usr/ports/databases/php5-pdo_mysql
Y el hacer la instalación
make install clean
Luego simplemente reinicie su apache y habrá terminado
Por ejemplo sudo /usr/local/etc/rc.d/apache22 restart
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-01-16 20:15:39
Instalarlo mediante este comando
sudo apt-get install php5-gd
Esto funcionó para mí.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-01-21 19:46:48
En mi caso no era consciente de 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 especificó un módulo PHP, no siendo el predeterminado que usa su CLI.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-04-03 11:43:50
He encontrado la solución adecuada para este error! O no tiene ninguna base de datos instalada o su base de datos predeterminada en este archivo config/database.php se establece en alguna otra base de datos como esta
'default' => 'sqlite',
'default' => env('DB_CONNECTION', 'sqlite'), //laravel 5.2
Cambie el valor predeterminado a cuál ha instalado o instale esa base de datos que se hace por defecto! Había instalado mysql y php artisan migrate trabajó después de que cambié esa línea a esta:
'default' => 'mysql',
'default' => env('DB_CONNECTION', 'mysql'), //laravel5.2
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-04-28 11:51:55
También estaba recibiendo el mismo error > > "[PDOException] no se pudo encontrar el controlador "
Me di cuenta de que el php estaba apuntando 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 hacer actualización a la .env archivo para asegurar las credenciales de acceso a la base de datos se actualizaron.
Y adivina qué, ¡funcionó!
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-07-07 09:24:52
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ó la cli de php a 7.0, mientras que el binario php web permaneció php 5.6. Usé esta respuesta para vincular el binario de la línea de comandos de php a la versión 5.6, así:
$ sudo ln -sfn /usr/bin/php5 /etc/alternatives/php
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-04-13 12:22:39
Si está usando Laravel 5.x, y el error es de intentar modificar los atributos de una columna, es posible que el error provenga de un prerrequisito faltante.
Prueba esto:
composer require doctrine/dbal
Luego intente ejecutar sus migraciones.
Desde aquí: https://laravel.com/docs/master/migrations#modifying-columns
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-08-08 15:37:38
Tengo 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.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-07-18 09:06:51