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. после этого он работает нормально.

Ответ 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