Laravel: PDOException: не удалось найти драйвер
Я разрабатываю веб-сайт на сервере. У меня есть только доступ к MySQL и FTP, поэтому все команды, которые я запускаю, проходят через оболочку php b374k. Я столкнулся с проблемой Laravel с драйвером SQL. Я попытался переключиться на SQLite с файловым размещением (в базе данных /database.sqlite), но исключенное исключение такое же, как при использовании MySQL. Вход и выход консоли следующие:
php artisan migrate:refresh --seed
[Illuminate\Database\QueryException]
could not find driver (SQL: select * from sqlite_master where type = 'table ' and name = migrations)
[Doctrine\DBAL\Driver\PDOException]
could not find driver
[PDOException]
could not find driver
Расширения Apache, установленные на сервере:
/etc/php/5.6/apache2/conf.d/10-mysqlnd.ini,
/etc/php/5.6/apache2/conf.d/10-opcache.ini,
/etc/php/5.6/apache2/conf.d/10-pdo.ini,
/etc/php/5.6/apache2/conf.d/15-xml.ini,
/etc/php/5.6/apache2/conf.d/20-calendar.ini,
/etc/php/5.6/apache2/conf.d/20-ctype.ini,
/etc/php/5.6/apache2/conf.d/20-curl.ini,
/etc/php/5.6/apache2/conf.d/20-dom.ini,
/etc/php/5.6/apache2/conf.d/20-exif.ini,
/etc/php/5.6/apache2/conf.d/20-fileinfo.ini,
/etc/php/5.6/apache2/conf.d/20-ftp.ini, /etc/php/5.6/apache2/conf.d/20-gd.ini,
/etc/php/5.6/apache2/conf.d/20-gettext.ini,
/etc/php/5.6/apache2/conf.d/20-iconv.ini,
/etc/php/5.6/apache2/conf.d/20-json.ini,
/etc/php/5.6/apache2/conf.d/20-mbstring.ini,
/etc/php/5.6/apache2/conf.d/20-mcrypt.ini,
/etc/php/5.6/apache2/conf.d/20-mysql.ini,
/etc/php/5.6/apache2/conf.d/20-mysqli.ini,
/etc/php/5.6/apache2/conf.d/20-pdo_mysql.ini,
/etc/php/5.6/apache2/conf.d/20-phar.ini,
/etc/php/5.6/apache2/conf.d/20-posix.ini,
/etc/php/5.6/apache2/conf.d/20-readline.ini,
/etc/php/5.6/apache2/conf.d/20-shmop.ini,
/etc/php/5.6/apache2/conf.d/20-simplexml.ini,
/etc/php/5.6/apache2/conf.d/20-sockets.ini,
/etc/php/5.6/apache2/conf.d/20-sysvmsg.ini,
/etc/php/5.6/apache2/conf.d/20-sysvsem.ini,
/etc/php/5.6/apache2/conf.d/20-sysvshm.ini,
/etc/php/5.6/apache2/conf.d/20-tokenizer.ini,
/etc/php/5.6/apache2/conf.d/20-wddx.ini,
/etc/php/5.6/apache2/conf.d/20-xmlreader.ini,
/etc/php/5.6/apache2/conf.d/20-xmlwriter.ini,
/etc/php/5.6/apache2/conf.d/20-xsl.ini,
/etc/php/5.6/apache2/conf.d/20-zip.ini
В чем может быть проблема и как я могу ее исправить? (У меня нет доступа к root bash)
Ответы
Ответ 1
Если вы можете, запустите:
composer update
composer require doctrine/dbal
Похоже, у вас есть недостающая зависимость
Редактировать:
Возможно, вам потребуется прокомментировать следующее в вашем файле php.ini.
;extension=pdo_mysql.so
Из этого сообщения: Laravel 5 PDOException не удалось найти драйвер. Думаю, я должен был сделать что-то в этом роде, когда настраивал laravel на цифровой океан.
Ответ 2
Ваш драйвер базы данных отсутствует. Чтобы решить проблему
Сначала установите драйвер
Для ubuntu: для базы данных mysql.
sudo apt-get install php5.6-mysql/php7.2-mysql
Вы также можете искать другие системы баз данных.
Вы также можете найти драйвер:
sudo apt-cache search drivername
Затем запустите команду cmd php artisan migrate
Ответ 3
У меня такая же ошибка при запуске моего набора тестов. Он работал до этого, но он прекратил работать после обновления php. Так я и сделал
sudo apt-get install php-sqlite3
и это сработало.
Ответ 4
Еще проще в Ubuntu (18.04)
apt install php-mysql
Готово. Нет необходимости редактировать файлы .ini
.
Удачного кодирования!
Ответ 5
Сначала проверьте php -m
.Если вы не видите драйвер mysql, установите mysql sudo apt-cache search php-mysql
Ваши результаты будут похожи на:
php-mysql - MySQL module for PHP [default]
установить драйвер php- mysql
sudo apt-get install php7.1-mysql
Ответ 6
Наконец, я исправил это. В конфигурации сервера была опечатка, и все пути к исполняемым файлам php были прекрасны, кроме пути к php-cli, что вызвало ошибку. Когда я исправил путь, все работало нормально.
Ответ 7
В CentOS7 я стараюсь: yum install php-mysql
, а затем редактировать php.ini
Ответ 8
В окне ОС. У меня есть uncomment extension = pdo_mysql для файла php.ini, который находится в том же каталоге php.exe. после этого он работает нормально.
Ответ 9
При создании таблицы базы данных через Laravel с помощью командной строки php artisan migrate
Это дает ошибку. Я использую Xampp Server
Команда переноса команды cmd php не работает
Ответ 10
У меня была та же проблема, и я раскомментировал extension=pdo_sqlite
и запустил migration
и все работало нормально.
Ответ 11
Возможно, вам не хватает sqlite или конкретного драйвера БД, который вы пытаетесь перенести.
Установите драйвер БД, и все будет в порядке. Вам не обязательно редактировать файл php.ini (это тоже можно исправить).
Для sqlite сделайте → sudo apt-get install php-sqlite3
Затем sudo apt-get install php-sqlite3
php artisan migrate
NB: я предполагаю, что у вас уже установлен PHP и MySql