wake-up-neo.com

Laravel 5.4 auf PHP 7.0: PDO-Ausnahme - Treiber nicht gefunden (MySQL) c

Ich habe ein Laravel 5.4-Projekt auf meinem Ubuntu 14.04 (VPS mit Plesk 12.5.30). Nachdem ich die Datenbank erstellt und die Datei .env mit den erforderlichen Informationen eingerichtet hatte, lief ich php artisan migrate und es wurden Ausnahmen ausgelöst:

[Illuminate\Database\QueryException]
Treiber konnte nicht gefunden werden (SQL: select * aus information_schema.tables, wobei table_schema = pmaramaldb und table_name = Migrationen ist)

[PDOException]
Treiber konnte nicht gefunden werden

Meine .env -Datei hat:

DB_CONNECTION = Mysql

DB_Host = 127.0.0.1

DB_PORT = 3306

DB_DATABASE = pmaramaldb

DB_USERNAME = Benutzer

DB_PASSWORD = Passwort

Ich habe die meisten Anleitungen befolgt, um diesen Fehler zu beheben, und es gab keine positiven Ergebnisse:

Enabling Extension Solution:

PDO ist aktiviert

Die Datei php.ini wird automatisch generiert. Ich denke, dies wird von Plesk gemacht. Am Anfang der Datei steht:

; BEACHTUNG!
;
; ÄNDERN SIE DIESE DATEI NICHT, WEIL ES AUTOMATISCH ERZEUGT WURDE
; SO ALLE IHRE ÄNDERUNGEN WERDEN DAS NÄCHSTE MAL DIE DATEI IS ERZEUGT.

Also habe ich es trotzdem probiert. Danach habe ich Apache neu gestartet und es dann erneut versucht ... Hat nicht funktioniert.

Php7.0-mysql installieren Lösung: 

Ich habe auch versucht, MySQL zu installieren, falls nicht:

benutzer @ Server:/var/www/vhosts $ Sudo apt-get install php7.0-mysql

Leyendo lista de paquetes ... Hecho

Creando árbol de dependencias

Mehr Infos hier ... Hecho

php7.0-mysql ist bereits die neueste Version.

0 actualizados, 0 se instalarán, 0 para eliminar y 67 keine actualizados.

** SQL Lite-Installationslösung: **

Ich habe auch versucht als Frage Link sagt: Sudo apt-get install php5-sqlite und das Ergebnis war:

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

Leyendo lista de paquetes ... Hecho

Creando árbol de dependencias

Mehr Infos hier ... Hecho

php5-sqlite ist bereits die neueste Version.

0 actualizados, 0 se instalarán, 0 para eliminar y 67 keine actualizados.

Composer-Dump-Autoload-Lösung:

Es hat auch nicht funktioniert. Ich habe composer dump-autoload ausprobiert und es hat nicht funktioniert.

Nach dem Ausführen des Befehls php -i:

PDO 

PDO-Unterstützung => aktiviert 

PDO-Treiber => 

...

PHP-Version => 5.6.30-1 + deb.sury.org ~ trusty + 1

Ich bin mir nicht sicher, ob dies etwas mit dem Fehler zu tun hat, aber die Version, die durch Ausführen von php -v angezeigt wird, lautet:

benutzer @ Server: ~/Pfad $ php -v 

PHP 5.6.30-1 + deb.sury.org ~ trusty + 1 (cli) 

Copyright (c) 1997-2016 Die Gruppe PHP 

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

19
Maramal

Es gibt einen Konflikt zwischen dem von Apache verwendeten PHP und dem mit der Befehlszeile verknüpften PHP. (Es kommt öfter vor, dass es ehrlich sein sollte).

Was normalerweise gemacht wird, ist:

which php

Hier erfahren Sie, welcher PHP-Wert erwartet wird, wenn er in der Befehlszeile ausgeführt wird. z.B. /usr/bin/php

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

Verknüpfen oder kopieren Sie dann die korrekte PHP -Version in einen ausführbaren Pfad:

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

oder das Folgende sollte auch funktionieren.

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

Wird auch empfohlen, wenn Sie Mods manuell installieren möchten:

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

Auf diese Weise passt Ihre CLI zu Ihrem Webserver.

8
apokryfos

Als alternative Lösung sollten Sie sicherstellen, dass Sie php7-mysql installiert haben

versuchen Sie, den folgenden Befehl auszuführen

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

Dasselbe Problem, Ubuntu 17.10, Laravel 5.5.

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

 enter image description here

 enter image description here

Eine schöne schnelle Lösung, hoffe das hilft

16
Devin Norgarb

Ich hatte das gleiche Szenario wie Sie. Ich habe Folgendes gelöst: 

1) Geben Sie auf Ihrem Terminal ein. 

php --ini

dadurch wird der aktuelle Pfad der Konfigurationsdatei php.ini ausgegeben. 

2) Bearbeiten Sie die php.ini mit vim oder Ihrem bevorzugten Editor.

vim /etc/php.ini

beachten Sie, dass /etc/php.ini Ihre Pfaddatei für Ihre php.ini ist. es kann auf Ihrem Rechner anders aussehen. 

3) Finde ; extension = php_pdo_mysql.dll und entferne das Kommentarzeichen durch Entfernen des Semikolons (;)  

4) speichere deine php.ini change/s

** 5) Starten Sie den Webserver neu, um die Änderungen zu übernehmen

Sudo systemctl neu starten Apache2

** 6) Führen Sie jetzt Ihren Befehl aus. 

pHP Handwerker migrieren

hoffe das hilft dir 

8
doyevaristo

in linux mach das so

überprüfen Sie zuerst Ihre PHP-Version wie folgt:

php -v

nachdem Sie zum Beispiel die Versionsnummer erhalten haben, erhalte ich 7.1 und installiere dann so

Sudo apt-get install  php7.1-sqlite     //for laravel testing with sqlite
Sudo apt-get install  php-mysql         //for default mysql
Sudo apt-get install  php7.1-mysql      //for version based mysql 
Sudo apt-get install  php7.1-common     //for other necessary package for php

und müssen Apache2 neu starten

Sudo service Apache2 restart
2
Jignesh Joisar

Ihr Datenbanktreiber fehlt. Um das Problem zu lösen

Installieren Sie zuerst den Treiber

Für Ubuntu: Für MySQL-Datenbank.

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

Sie können auch nach anderen Datenbanksystemen suchen.

Sie können auch nach dem Treiber suchen:

Sudo apt-cache search drivername
2
abhishek subedi

Sie können diese folgenden Befehle ausprobieren 

php artisan cache:clear
php artisan config:clear  

Starten Sie anschließend Ihren Apache-Server neu. Danach Ihre .env-Datei neu konfigurieren 

1
MF Hossen

Ok, ich habe diesen Fehler einmal erlebt ... Ich weiß nicht warum, aber es sieht so aus, als ob es in php 7.3 ein Problem mit den Treibern gibt oder was dort passiert ist. Ich habe auf php 7.2 umgestellt und alles hat gut funktioniert ...

0
Lotes Molapo

Eigentlich bin ich mir ziemlich sicher, dass Sie Ihre PHP - Versionen nicht kennen und die falschen Pfade verwendet haben:

Für Ihren Hersteller PHP Version (5.6 von sury.org) würden Sie PHP - Befehle als "/ usr/bin/php" verwenden, aber wenn Sie Verwenden Sie verschiedene PHP - Versionen, wie zum Beispiel die von Plesk, dann haben Sie verschiedene Pfade:

/opt/plesk/php/5.2/bin/php -v
/opt/plesk/php/5.3/bin/php -v
/opt/plesk/php/5.4/bin/php -v
/opt/plesk/php/5.5/bin/php -v
/opt/plesk/php/5.6/bin/php -v
/opt/plesk/php/7.0/bin/php -v
/opt/plesk/php/7.1/bin/php -v

Ihre PHP - Befehle für mögliche zusätzliche PHP Versionen (7.0 und 7.1, wenn Sie sury.org MAIN installiert haben ppa PHP Versionen von https://launchpad.net/~ondrej/+archive/ubuntu/php ) wären:

/usr/bin/php7.0 -v
/usr/bin/php7.1 -v

Zeigen Sie die installierten Module für jede PHP Version mit der Optionszeichenfolge "-m" an und verwenden Sie die Optionszeichenfolge "-i" für Informationen (Beispiel):

/opt/plesk/php/7.0/bin/php -m
/opt/plesk/php/7.0/bin/php -i
or
/usr/bin/php7.0 -m
/usr/bin/php7.0 -i

Um den "Komponisten" zu verwenden, würden Sie sicherlich auch den vollständigen Pfad Ihrer PHP ausführbaren Datei (Beispiel) verwenden:

/opt/plesk/php/7.0/bin/php composer-setup.php
or
/usr/bin/php7.0 composer-setup.php

Zusätzliche "Komponisten" -Befehle sind dann:

/opt/plesk/php/7.0/bin/php composer.phar AND-ADDITIONAL-STRINGS/OPTIONS-TO-BE-INCLUDED
or
/opt/plesk/php/7.0/bin/php composer.phar AND-ADDITIONAL-STRINGS/OPTIONS-TO-BE-INCLUDED
0
UFHH01

leeren Sie den Cache des Handwerkers 

php artisan cache:clear

und

php artisan migrate:refresh

das ist es 

0
Fatih TÜZEN