У меня плохой опыт при установке 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 я получил эту ошибку, включая две другие ошибки.
ошибки:
Для laravel / framework v5.2.14 требуется ext-mbstring * -> запрошенное расширение PHP mbstring отсутствует в вашей системе.
phpunit / phpunit 4.8.22 требует ext-dom * -> запрошенное расширение PHP расширения отсутствует в вашей системе.
[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