394 Stimmen

PDOException "konnte keinen Treiber finden"

Ich habe gerade Debian Lenny mit Apache, MySQL und PHP installiert und erhalte eine PDOException could not find driver .

Dies ist die spezifische Codezeile, auf die er sich bezieht:

$dbh = new PDO('mysql:host=' . DB_HOST . ';dbname=' . DB_NAME, DB_USER, DB_PASS)

DB_HOST , DB_NAME , DB_USER y DB_PASS sind Konstanten, die ich definiert habe. Auf dem Produktionsserver (und auf meinem früheren Ubuntu-Server) funktioniert es gut.

Hat das etwas mit meiner PHP-Installation zu tun?

Die Suche im Internet hat nicht geholfen, ich finde nur den Austausch von Experten und Beispiele, aber keine Lösungen.

306voto

ZZ Coder Punkte 72742

Sie benötigen ein Modul namens pdo_mysql. Suchen Sie in phpinfo() nach folgendem,

pdo_mysql

PDO Driver for MySQL, client library version => 5.1.44

224voto

ghbarratt Punkte 10993

Die dsn in Ihrem Code zeigt, dass Sie versuchen, eine Verbindung mit dem mysql-Treiber herzustellen. Ihre Fehlermeldung zeigt an, dass dieser Treiber nicht verfügbar ist.

Vergewissern Sie sich, dass Sie die mysql-Erweiterung auf Ihrem Server installiert haben.

In Ubuntu/Debian suchen Sie nach dem Paket mit:

dpkg --get-selections | grep php | grep mysql

Installieren Sie das Paket php5-mysql, falls Sie es noch nicht haben.

In Ubuntu/Debian können Sie verwenden:

  • PHP5: sudo apt-get install php5-mysql
  • PHP7: sudo apt-get install php7.0-mysql

Schließlich müssen Sie Ihren Webserver neu starten, damit er funktioniert:

  • Apache: sudo /etc/init.d/apache2 restart
  • Nginx: sudo /etc/init.d/nginx restart

97voto

Sudipta Chatterjee Punkte 4428

Update : Neuere Versionen sollten php-sqlite3 Paket anstelle von php5-sqlite . Verwenden Sie dies, wenn Sie eine aktuelle Ubuntu-Version verwenden:

sudo apt-get install sqlite php-sqlite3

Die Originalantwort auf die Frage finden Sie hier:

sudo apt-get install sqlite php5-sqlite
sudo /etc/init.d/apache2 restart

Wenn Ihr phpinfo() die pdo_sqlite-Zeile nicht anzeigt (in meinem Fall auf meinem Ubuntu-Server), brauchen Sie nur die obigen Zeilen auszuführen, und schon sind Sie startklar.

52voto

ThomasAFink Punkte 1006

Für neuere Versionen von Ubuntu, die PHP 7.0 haben, können Sie das php-mysql Paket:

sudo apt-get install php-mysql

Starten Sie dann Ihren Server neu:

sudo service apache2 restart

33voto

onlyme Punkte 3226

Ich hatte das gleiche Problem. Die Lösung hängt vom Betriebssystem ab. In meinem Fall habe ich Debian, so dass es zu lösen:

  • Ich habe meine php-Version von ( php5 bis php7 )

  • php-mysql und php7.0-mysql installieren

    apt-get install php-mysql
    apt-get install php7.0-mysql
  • Ich habe meine php.ini zu finden unter /etc/php/7.0/apache2/php.ini

    uncomment the line : extension=php_pdo_mysql.dll
  • Starten Sie dann den Apache neu:

    service apache2 restart

Damit ist mein Problem gelöst

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X