it-swarm.com.ru

Laravel 5.4 on PHP 7.0: Исключение PDO - не удалось найти драйвер (MySQL) c

У меня есть проект Laravel 5.4 на моем Ubuntu 14.04 (VPS с Plesk 12.5.30). После создания базы данных и настройки файла .env с необходимой информацией я запустил php artisan migrate и были сгенерированы исключения:

[Подсветить\База данных\QueryException]
не удалось найти драйвер (SQL: select * from information_schema.tables, где table_schema = pmaramaldb и table_name = migrations)

[PDOException]
не смог найти водителя

Мой файл .env содержит:

DB_CONNECTION = MySQL

DB_HOST = 127.0.0.1

DB_PORT = 3306

DB_DATABASE = pmaramaldb

DB_USERNAME = пользователь

DB_PASSWORD = пароль

Я следовал большинству руководств, чтобы решить эту ошибку, и никаких положительных результатов не было:

Включение решения для расширения:

PDO включен

Файл php.ini генерируется автоматически, я думаю, это сделано Plesk. В начале файла он говорит:

; ВНИМАНИЕ!
;
; НЕ МОДИФИЦИРУЙТЕ ЭТОТ ФАЙЛ, ПОТОМУ ЧТО ЭТО БЫЛО Сгенерировано АВТОМАТИЧЕСКИ,
; SO ВСЕ ВАШИ ИЗМЕНЕНИЯ БУДУТ УТРАТЕНЫ В СЛЕДУЮЩЕМ ВРЕМЕНИ, ЧТОБЫ ФАЙЛ IS СОЗДАН.

Так что я все равно попробовал. После этого я перезапустил Apache и попробовал снова ... Не сработало.

Установка php7.0-mysql Решение: 

Я также пытался установить MySQL в случае, если это не так:

user @ server:/var/www/vhosts $ Sudo apt-get установить php7.0-mysql

Leyendo lista de paquetes ... Hecho

Creando árbol de dependencias

Информация о состоянии ... Hecho

php7.0-mysql уже самая новая версия.

0 actualizados, 0 se instalarán, 0 para устраненияar y 67 no актуализированных ситуаций.

** Решение для установки SQL Lite: **

Я также пробовал как ссылка на вопрос говорит: Sudo apt-get install php5-sqlite и результат был:

user @ server: /var/www/vhosts/system/maramal.io/etc$ Sudo apt-get install php5-sqlite

Leyendo lista de paquetes ... Hecho

Creando árbol de dependencias

Информация о состоянии ... Hecho

php5-sqlite уже самая новая версия.

0 actualizados, 0 se instalarán, 0 para устраненияar y 67 no актуализированных ситуаций.

Composer Dump-autoload Решение:

Это тоже не сработало. Я пробовал composer dump-autoload, и это не сработало.

После запуска команды php -i:

PDO 

Поддержка PDO => включена 

PDO драйверы => 

...

Версия PHP => 5.6.30-1 + deb.sury.org ~ trusty + 1

Ну, я не уверен, что это как-то связано с ошибкой, но версия, показанная при запуске php -v:

пользователь @ сервер: ~/путь $ php -v 

PHP 5.6.30-1 + deb.sury.org ~ верный + 1 (cli) 

Copyright (c) 1997-2016 Группа PHP 

Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
с Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, Zend Technologies 

19
Maramal

Существует конфликт между PHP, который используется Apache, и PHP, который связан с командной строкой. (Чаще всего бывает честно).

Что обычно делается:

which php

Это говорит вам, какой php будет определен при запуске в командной строке. например /usr/bin/php

mv /usr/bin/php /usr/bin/php.old

Затем создайте ссылку или скопируйте правильную версию PHP в путь к исполняемому файлу:

ln -s /path/to/php/bin/php /usr/bin/php

или следующее также должно работать.

cp /path/to/php/bin/php /usr/bin/php

Также предлагается, если вы хотите иметь возможность устанавливать моды вручную:

ln -s /path/to/php/bin/phpize /usr/bin/phpize
ln -s /path/to/php/bin/php-config /usr/bin/php-config

Таким образом, ваш CLI будет соответствовать вашему веб-серверу.

8
apokryfos

В качестве альтернативного решения убедитесь, что вы установили php7-mysql

попробуйте запустить команду ниже

Sudo apt install php7.0-mysql
33
İsmail Atkurt

Та же проблема, Ubuntu 17.10, Laravel 5.5.

$ Sudo apt install php7.1-pdo php7.1-mysql 

 enter image description here

 enter image description here

Хорошее быстрое решение, надеюсь, это поможет

16
Devin Norgarb

У меня был тот же сценарий, что и у вас. Я решил мое следующее: 

1) на вашем терминале наберите  

php --ini

это выведет ваш текущий путь к файлу конфигурации php.ini. 

2) отредактируйте php.ini, используя vim или предпочитаемый вами редактор.

vim /etc/php.ini

обратите внимание, что /etc/php.ini - это ваш путь к файлу php.ini. это может отличаться на вашей машине. 

3) найдите ; extension = php_pdo_mysql.dll и раскомментируйте его, удалив точку с запятой (;)  

4) сохранить изменения php.ini/s

** 5) перезапустите веб-сервер, чтобы применить изменения

Sudo systemctl перезапустить Apache2

** 6) Теперь запустите вашу команду. 

php ремесленник мигрировать

надеюсь, это поможет вам. 

8
doyevaristo

Ваш драйвер базы данных отсутствует. Решить пробелем

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

Для Ubuntu: Для базы данных MySQL.

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

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

Вы также можете искать водителя:

Sudo apt-cache search drivername
2
abhishek subedi

Вы можете попробовать эти следующие команды 

php artisan cache:clear
php artisan config:clear  

Затем перезапустите сервер Apache. После этого Перенастроить файл .env 

1
MF Hossen

Хорошо, однажды я столкнулся с этой ошибкой ... Я не знаю почему, но похоже, что в php 7.3 есть проблема с драйверами или что-то там, что я сделал, переключился обратно на php 7.2, и все работало нормально ...

0
Lotes Molapo

очистить тайник ремесленника 

php artisan cache:clear

а также

php artisan migrate:refresh

вот и все 

0
Fatih TÜZEN