Error could not find driver file
Я только что установил Debian Lenny с Apache, MySQL и PHP, и я получаю PDOExceptioncould not find driver.
Это конкретная строка кода, на которую он ссылается:
$dbh = new PDO(‘mysql:host=’ . DB_HOST . ‘;dbname=’ . DB_NAME, DB_USER, DB_PASS)
DB_HOST, DB_NAME, DB_USER, и DB_PASSявляются константами, которые я определил. Он отлично работает на рабочем сервере (и на моей предыдущей настройке сервера Ubuntu).
Это как-то связано с моей установкой PHP?
Поиск в Интернете не помог, все, что я получаю, это experts-exchange и примеры, но никаких решений.
Ответ
У вас должен быть модуль с именем pdo_mysql. Ищу следующее в phpinfo(),
pdo_mysql
PDO Driver for MySQL, client library version => 5.1.44
DSN в вашем коде показывает, что вы пытаетесь подключиться к драйверу mysql. Ваше сообщение об ошибке указывает, что этот драйвер недоступен.
Убедитесь, что на вашем сервере установлено расширение mysql.
В Ubuntu / Debian вы проверяете наличие пакета с помощью:
dpkg –get-selections | grep php | grep mysql
Установите пакет php5-mysql, если у вас его нет.
В Ubuntu / Debian вы можете использовать:
PHP5: sudo apt-get install php5-mysql
PHP7: sudo apt-get install php7.0-mysql
Наконец, чтобы заставить его работать, вам нужно будет перезапустить ваш веб-сервер:
Apache: sudo /etc/init.d/apache2 restart
Nginx: sudo /etc/init.d/nginx restart
Обновление: более новые версии должны использовать php-sqlite3package вместо php5-sqlite. Поэтому используйте это, если вы используете последнюю версию ubuntu:
sudo apt-get install sqlite php-sqlite3
Оригинальный ответ на вопрос здесь:
sudo apt-get install sqlite php5-sqlite
sudo /etc/init.d/apache2 restart
Если ваш phpinfo () не показывает строку pdo_sqlite (в моем случае, на моем сервере Ubuntu), вам просто нужно запустить приведенные выше строки, и тогда все будет готово.
Laravel: PDOException: could not find driver
Я разрабатываю веб-сайт на сервере, у меня есть доступ только к MySQL и FTP, поэтому все команды, которые я запускаю, выполняются через php-оболочку b374k. У меня возникла проблема Laravel с драйвером SQL. Я попытался переключиться на файловый SQLite (в database / database.sqlite), но генерируемое исключение такое же, как при использовании MySQL. Ввод и вывод консоли выглядит следующим образом:
php artisan migrate:refresh –seed
[Illuminate\Database\QueryException]
could not find driver (SQL: select * from sqlite_master where type = ‘table ‘ and name = migrations)
[Doctrine\DBAL\Driver\PDOException]
could not find driver
[PDOException]
could not find driver
В чем может быть проблема и как я могу ее исправить? (У меня нет доступа к root bash)
Ответ
Драйвер вашей базы данных отсутствует. Для решения проблемы
Сначала установите драйвер
Для ubuntu: для базы данных MySQL.
sudo apt-get install php5.6-mysql/php7.2-mysql
Вы также можете выполнить поиск в других системах баз данных.
Вы также можете выполнить поиск драйвера:
sudo apt-cache search drivername
Затем запустите cmd php artisan migrate