Intereting Posts
Проблема с закрытием PHP Проблема в создании нового контроллера в Zend Framework 2 (ZF2) Инструменты программирования NLP с использованием PHP? Разработка базы данных MySql для программы викторины Как использовать php-массив с оператором sql IN? Laravel 5 – Получение параметров URL в промежуточном продукте по ресурсам Как включить страницу с функцией $ _GET & htaccess? Неустранимая ошибка: вызов неопределенной функции mysql_connect () в C: \ Apache \ htdocs \ test.php в строке 2 Guzzle: обрабатывать 400 плохих запросов pthread не работает в php 500 Внутренняя ошибка сервера для файла php не для html Как разобрать текст с ключом по столбцу с возможными многострочными строками Упрощение форм PHP, которые предварительно заполняются данными dabase и проверкой ошибок, поэтому активно перезаписывать данные $ _POST как настроить веб-сервер xampp для разных корневых каталогов PHP – while loop (! Feof ()) не выводит / показывает все

php artisan migrate throwing Не удалось найти драйвер – Использование Laravel

У меня плохой опыт при установке laravel. Однако я смог сделать это и перейти на следующий уровень. Я использовал генераторы и создал свои миграции. Но когда я набираю последнюю команду

php artisan migrate 

Это бросает PDOException – не удалось найти драйвер.

  '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' => '', ), 

Это моя конфигурация в config / database.php.

Я пробовал искать на форумах stackoverflow и laravel, и люди полагают, что это проблема PDO, а не artisan или php. Я следил за такими предложениями, как добавление

 extension=pgsql.so extension=pdo_pgsql.so 

в php.ini

Никакого положительного результата. Он всегда говорит, что [PDOException]could not find driver.

Может кто-то может помочь разрешить это.

Окружающая среда, которую я использую: Mac, laravel 4, MAMP PRO с php 5.4.4

Вы можете использовать

 sudo apt-get install php7-mysql 

или

 sudo apt-get install php5-mysql 

или

 sudo apt-get install php-mysql 

Это сработало для меня.

Это сработало для меня:

 sudo apt-get install php5-sqlite 

Этот установленный sqlite для php5, затем я снова запустил команду php artisan migrate и отлично работал.

Вам нужно специально включить плагин pdo_mysql. Предполагая, что вы используете стандартную установку PHP, обычно вам просто нужно добавить это в свой файл PHP.ini:

 extension=pdo_mysql.so 

Вы должны убедиться, что этот файл существует в каталоге расширения.

Добавление pdo_pgsql.so не помогает, потому что это для PostgreSQL.

Кроме того, вы должны убедиться, что вы перезапустите веб-сервер после внесения изменений в файл PHP ini, так как изменения могут не отображаться в противном случае.

Я думаю, вы пропустили драйвер mysql для php5. Выполните команду:

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

Также проверьте файл Laravel .env . Убедитесь, что DB_CONNECTION=mysql , иначе он не будет работать с MySQL. Он пытался загрузить что-то еще.

В этой же проблеме возникает проблема, и получается, что PHP в командной строке использует другой файл php.ini из версии браузера, поэтому похоже, что он правильно загружает расширение, когда вы смотрите на phpinfo() в браузер.

В соответствии с этим ответом вам просто нужно запустить:

 php --ini 

В командной строке, которая сообщит вам путь к загружаемому в настоящий момент php.ini (вероятно, фактически файлу php-cli.ini расположенному в том же месте, что и ваш обычный файл php.ini ).

Как только вы это обнаружите, измените его с помощью расширений pdo, которые вы хотите (в данном случае для MySQL):

 extension=pdo_mysql.so 

Или для любых других пользователей, работающих в Windows с использованием какого-либо WAMP-сервера, скорее всего, это выглядит следующим образом:

 extension=php_pdo_mysql.dll 

Если бы такая же проблема и просто фигурировала, веб-сайт работает под php MAMP, но когда вы вызываете команду, она запускает mac (если ни один путь bash не изменен). у вас будет проблема, если у mac нет этих расширений.

запустите php -i, чтобы узнать загруженные расширения и установите те, которые вы пропустили. или запустите '/Applications/MAMP/bin/php/php5.3.6/bin/php artisan {your command}', чтобы использовать MAMP

Я также получал ту же ошибку -> "[PDOException]
не удалось найти драйвер "

После этого я использовал много команд, но не получил никакой помощи

Наконец, я использовал следующую команду, которая решила мою проблему.

sudo apt-get install php5-sqlite

Тестирование Laravel с помощью sqlite требует драйверов php pdo sqlite

Для Ubuntu 14.04

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

В Ubuntu 16.04 нет php5-sqlite

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

Вам не хватает драйвера PDO.

Сначала установите драйвер

Для ubuntu: для базы данных mysql.

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

Вы также можете искать другие системы баз данных.

Вы также можете найти драйвер:

sudo apt-cache search drivername

 Then Run the cmd php artisan migrate 

Я не знаю ubuntu 14.04

Ниже команда решила эту проблему для меня.

sudo apt-get install php-mysql

В моем случае после обновления моей версии php с 5.5.9 до 7.0.8 я получил эту ошибку, включая две другие ошибки.

ошибки:

  1. Для laravel / framework v5.2.14 требуется ext-mbstring * -> запрошенное расширение PHP mbstring отсутствует в вашей системе.

  2. phpunit / phpunit 4.8.22 требует ext-dom * -> запрошенное расширение PHP расширения отсутствует в вашей системе.

  3. [PDOException]
    не удалось найти драйвер

Решения:

Я установил эти пакеты, и мои проблемы исчезли.

sudo apt-get install php-mbstring

sudo apt-get install php-xml

sudo apt-get install php-mysql

Для будущих искателей. В FreeBSD попробуйте следующее

 pkg_info | grep php5-pdo_mysql 

если вы видите пустую строку в ответ, выполните следующие действия:

 cd /usr/ports/databases/php5-pdo_mysql 

и сделать установку

 make install clean 

затем просто перезапустите апач, и все будет готово

например, sudo /usr/local/etc/rc.d/apache22 restart

Установите его с помощью этой команды

sudo apt-get install php5-gd

это сработало для меня.

В моем случае я не знал, что PHP, выполняемый Apache, отличается от того, который выполняется CLI. Это может быть так, если во время настройки в httpd.conf вы указали модуль PHP, а не по умолчанию, который использует ваш CLI.

Я нашел правильное решение этой ошибки! Либо у вас нет какой-либо базы данных или вашей базы данных по умолчанию в этом файле config / database.php установлен в какую-либо другую базу данных, такую ​​как

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

измените значение по умолчанию, на которое вы установили или установили эту базу данных, которая была сделана по умолчанию! Я установил миграцию mysql и php artisan после того, как я изменил эту строку:

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

Я также получал ту же ошибку -> "[PDOException] не смог найти драйвер"

Я понял, что php указывал на / usr / bin / php вместо lampp / opt / lampp / bin / php, поэтому я просто создал и псевдоним

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

также необходимо было обновить файл .env, чтобы убедиться, что учетные данные доступа к базе данных обновлены.

И угадайте, что, это работало!

У меня была эта проблема на debian. Проблема была в том, что я использовал репозиторий dotdeb для более свежих пакетов PHP. По какой-то причине он обновил php cli до 7.0, в то время как двоичный файл web php остался php 5.6. Я использовал этот ответ, чтобы связать двоичную строку командной строки php с версией 5.6, например:

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

Если вы используете Laravel 5.x, и ошибка заключается в попытке изменить атрибуты столбца, возможно, ошибка исходит из недостающего предварительного условия.

Попробуй это:

  composer require doctrine/dbal 

Затем попробуйте выполнить миграцию.

Отсюда: https://laravel.com/docs/master/migrations#modification-columns

Вы должны установить последнюю версию php mysql в моем случае. Я устанавливаю php7.1-mysql

Попробуй это

 sudo apt-get install php7.1-mysql 

Я использую последнюю версию laravel