PDOException: could not find driver

Vaclav23
Člen | 3
+
0
-

Zdravím,

Nedaří se mi rozběhnout spojení s DB na produkčním serveru.

Hláška:
PDOException: could not find driver

database:
dsn: ‚mysql:host=localhost;port=3306;dbname=dbname‘
user: user
password: …

Server Debian. Dle administrátora je na serveru PHP verze 7.3.19 + rozšíření PDO. Měl jsem podezdření, že PDO rozšíření na serveru chybí, ale zdá se že rozšíření je OK:

V info.php je v sekci PDO vyobrazen PDO driver: mysql
+
console:
domain:/etc/php/7.3/apache2/conf.d$ cat 20-pdo_mysql.ini
; configuration for php mysql module
; priority=20
extension=pdo_mysql.so

(odkomentované pdo_mysql.so)

Používám Nette verzi 3.0.0 staženou přes composer. Na server se do DB dostanu přes phpMyAdmin, takže DB očividně běží.

Hláška vyskakuje, když se vytváří nová instance PDO (new PDO):
https://github.com/…nnection.php#L67

Prosím, nenarazil jste někdo na něco podobného?

Děkuji

Václav

David Matějka
Moderator | 6445
+
0
-

a zkoušel si info.php načíst v browseru nebo v konzoli? ty extensions mohou být jiný (i když teda dle toho cat to vypadá, že pro apache by měl existovat – ledaže by nebyl restartovaný apache)

Vaclav23
Člen | 3
+
0
-

V browseru.

Mno, jedná se o public stránky, takže můžu asi i ukázat „zde“.
Ten nerestartovaný apache se mi zdá jako dobrá myšlenka, zkusím se pozeptat.

Editoval Vaclav23 (17. 8. 2020 17:28)

David Matějka
Moderator | 6445
+
0
-

to info vypadá dobře. zkus ještě zkontrolovat, že se opravdu do new PDO posílá do správné DSN (jestli nemáš zacachovaný DI container se špatným configem nebo tak..)

Vaclav23
Člen | 3
+
0
-

No opravdu. Problém byl v cache. Promazal jsem cache a stránky naběhly. v DSN byl ještě postaru port 3307.

Díky moc.