Could not find driver

Август, 2022

# Проблема

Любая попытка взаимодействия с базой данной завершается ошибкой:

[Illuminate\Database\QueryException] could not find driver

PDOException(code: 0): could not find driver at /Illuminate/Database/Connectors/Connector.php

# Причина

В окружении не установлены или не подключены расширения для базы данных. Посмотреть список установленных модулей можно командой php -m

# Решение

Установить расширение php-pdo и
php-mysql для MySQL
php-pgsql для PostgreSQL
php-sqlite для SQLite

Для конкретной версии, например, 8.1:

1sudo apt install php8.1-pdo php8.1-mysql
highlight by torchlight.dev

Или автоматически для текущей:

1sudo apt install php-pdo php-mysql
highlight by torchlight.dev

Возможно понадобится перезапуск web-сервера. Обычно больше ничего не требуется, но если модули по какой-то причине не подключились автоматически, то можно активировать вручную:

1sudo phpenmod pdo
2sudo phpenmod pdo_mysql
3# or
4sudo phpenmod pdo_pgsql
5sudo phpenmod pdo_sqlite
highlight by torchlight.dev

# Решение для Windows

Для Windows смысл тот же, необходимо скачать dll в директорию ext с расширениями, но скорей всего необходимые модули уже присутствуют в сборке, осталось только их подключить в php.ini

Для этого необходимо удалить символ ; в начале строк:

1extension=php_pdo_mysql.dll
2extension=php_mysqli.dll
highlight by torchlight.dev