Laravel: ошибка [PDOException]: не удалось найти драйвер в PostgreSQL



Я пытаюсь подключиться к базе данных PostgreSQL через Laravel, чтобы выполнить миграцию php artisan, но, похоже, не направляется, поскольку он читает имя базы данных MySQL.



вот команды из базы данных.php:



'connections' => array(

'sqlite' => array(
'driver' => 'sqlite',
'database' => __DIR__.'/../database/production.sqlite',
'prefix' => '',
),

'mysql' => array(
'driver' => 'mysql',
'host' => 'localhost',
'database' => 'database',
'username' => 'root',
'password' => '',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
),

'pgsql' => array(
'driver' => 'pgsql',
'host' => 'localhost',
'database' => 'postgres',
'username' => 'postgres',
'password' => 'root',
'charset' => 'utf8',
'prefix' => '',
'schema' => 'public',
),

'sqlsrv' => array(
'driver' => 'sqlsrv',
'host' => 'localhost',
'database' => 'database',
'username' => 'root',
'password' => '',
'prefix' => '',
),

),


если я удалю пути MySQL, я получу:



[InvalidArgumentException]
Database [mysql] not configured.





EDIT:
При попытке выполнить php artisan migrate я получаю "PDOException: не удалось найти драйвер". Я использую WAMP и Я на Win8.1. Использование PostgreSQL в качестве базы данных.




EDIT:
Я экспериментировал с серией альтернативных решений, но я все еще должен решить эту проблему.
Элемент php.ini файл был проверен в Apache, WAMP (из папки php) и PostgreSQL. Элемент extension_dir - это правильно, это -> extension_dir = "c:/wamp/bin/php/php5.5.12/ext/"

The extension=pdo_pgsql.dll и extension=pgsql.dll отсутствие комментариев.



сделал PATH трюк в "системных переменных" и перезагрузился. Без шансов.



спасибо помощь до сих пор.



это мои драйверы php_pdo_driver.h & php_pdo.h С C:Program Files (x86)PostgreSQLEnterpriseDB-ApachePHPphpSDKincludeextpdo



информация от phpinfo:




PHP версии 5.5.12



компилятор MSVC11 (Visual C++ 2012) настройка команды cscript /nologo
конфигурировать.js "--enable-snapshot-build "" --disable-isapi"
ключом "--enable-debug-включает пакет" "--без операций" "--без-ПДО-в MSSQL"
"--без-pi3web"
"--with-pdo-oci=C:php-sdkoraclex64instantclient10sdk, shared"
"...с-библиотека oci8=с:РНР-пакет SDKоракулх64instantclient10СДК,общая"
"--with-oci8-11g=C:php-sdkoraclex64instantclient11sdk, shared"
"--enable-object-out-dir=../obj / "" --enable-com-dotnet=shared"
"...с-mcrypt=статика" "--отключить-статический-анализ" "--с-ПГО"


1456   17  

17 ответов:

обязательно настройки 'default' ключ в app/config/database.php

для postgres, это было бы 'default' => 'postgres',

если вы получаете [PDOException] could not find driver ошибка, проверьте, установлены ли у вас правильные расширения PHP. Вам нужно pdo_pgsql.so и pgsql.so установлен и включен. Инструкции о том, как это сделать, различаются в разных операционных системах.

для Windows pgsql расширения должны быть предварительно загружены с официальным дистрибутивом PHP. Просто отредактируйте свой php.ini и раскомментируйте строки extension=pdo_pgsql.so и extension=pgsql.so

кроме того, в php.ini, убедится extension_dir установлен в соответствующий каталог. Это должна быть папка под названием extensions или ext или аналогичный внутри вашего каталога установки PHP.

наконец, скопировать libpq.dll С C:\wamp\bin\php\php5.*\ на C:\wamp\bin\apache*\bin и перезапустить все службы через интерфейс WampServer.

если вы все еще получаете исключение, вам может потребоваться добавить postgres \bin каталог для вашего PATH:

  1. Свойства системы -> вкладка Дополнительно -> Переменные среды
  2. в группе "системные переменные" в нижней половине окна прокрутите и найдите PATH запись.
  3. выберите его и нажмите кнопку Редактировать
  4. в конце существующей записи, поместите полный путь к каталогу postgres bin. Папка bin должна находиться в корневом каталоге установки postgres.
  5. перезапустите все открытые командные строки, или, чтобы быть уверенным, перезагрузите компьютер.

это должно, надеюсь, решить любые проблемы. Для получения дополнительной информации см.:

на PDOException: could not find driver на MySQL, а если Debian на основе ОС

sudo apt-get -y install php5-mysql

для PHP 7 в Ubuntu, вы также можете сделать:

sudo apt-get install php7.0-pgsql

Итак, теперь вы можете не раскомментировать строки php.ini

UPD: У меня такая же ошибка, значит проблема не в драйвере. Я изменил свой database.ini, но каждый раз я видел ошибку. И я меняю конфигурацию базы данных в .env и ошибок нет.

Я понимаю, что это старый вопрос, но я нашел его в поиске Google, поэтому я собираюсь пойти дальше и ответить на всякий случай, если кто-то еще столкнется с этим. Я на Mac и имел ту же проблему, но решил ее с помощью доморощенного. После того, как вы его установили, вы можете просто запустить эту команду:

brew install php56-pdo-pgsql

и замените 56 на любую версию PHP, которую вы используете без десятичной точки.

это сработало для меня:

$ sudo apt-get install php-gd php-mysql

У меня была та же проблема. Это то, что сработало для меня.

есть 2 php.файлы ini:

  • C:\wamp\bin\apache\apache2.4.9\bin
  • C:\wamp\bin\php\php5.5.12

Примечание: это с помощью моей версии PHP и Apache, изменить то, что ваши.

php.ini-файл, расположенный в обеих папках, - это то, что вам нужно обновить, расширения:

  • extension=php_pdo_pgsql.dll
  • extension=php_pgsql.dll

Это то, что нужно раскомментировать (удалить ; символ).

перезапустите Wamp и командную строку.

надеюсь, это будет работать для вас :).

sudo apt-get install php7.1-pgsql

для тех, кто хочет использовать Postgresql на OpenSuse (и co), попробуйте следующее:

zypper --no-refresh in php5-pgsql

старый нить, я знаю, но я потерял пару часов своей жизни с этим. Вам также необходимо установить информацию о БД в поле .env file. Ты же не есть чтобы указать драйвер здесь, потому что по умолчанию указано в базе данных.php используется (Я думаю). Я боролся, потому что это было DB_CONNECTION=mysql в рамках .env файл, и я использовал pgsql.

в моем случае у меня было установлено две версии PHP. Так что мне пришлось использовать

$ /opt/lampp/bin/php artisan serve вместо

$ php artisan serve

Я был на виртуальном хостинге и там мне пришлось включить все pdo

Like this image shows

решается через 3 часа... Я использую WAMP (PHP 7.2.4), PostgreSQL 10, Laravel 5.6.29. Загрузил PHP расширения (pgsql, pdo_pgsql) из Wampserver 3.3, после чего мне удалось подключиться к серверу PostgreSQL с помощью простого PHP testcode из каталога www. Но $ php artisan migrate возвращается

PDOException:: ("не удалось найти драйвер")

Я проверил оболочку (git bash для windows) с $ php --ini, который возвращается C:\wamp64\bin\php\php7.2.4\php.вместо Ини из c:\wamp64\bin\apache\apache2.4.33\bin\php.ini, загруженный WAMP Таким образом, вы должны раскомментировать расширения pgsql и pdo_pgsql также в C:\wamp64\bin\php\php7.2.4\php.ini, а затем мигрировать будет работать ...

в Windows 8 ПК с Laragon 3.4.0 180809, я столкнулся с той же проблемой. Это произошло в моем случае, потому что я обновил Laragon и добавил новую версию PHP. Так что в laragon/bin/php/ У меня на самом деле было два каталога:

  • php-7.1.20-Win32-VC14-x64
  • php-7.1.7-Win32-VC14-x64

добавил 7.1.20 в свою PATH переменной. Но в моей командной консоли, работает php --ini показывал, что путь на самом деле был fetching от старшего: php-7.1.7-Win32-VC14-x64. Поэтому я удалил старый (для безопасность, я положил его в корзину). Но Ларагон не смог начать после этого.

так, в laragaon/etc/apache2/mod_php.conf, Я изменил путь к последней версии PHP. Затем перезапустил Laragon и проблема решена.

ссылки: как добавить еще одну версию PHP-Laragon Forum

установить значение по умолчанию 'default' => 'sqlite';

проверить -http://three.laravel.com/docs/database/config

а это - настройка PostgreSQL с Laravel в MAMP

это сработало для меня:

$ sudo apt-get -y install php5.6-pgsql
$ sudo service apache2 restart

Я работаю с 32bit Ubuntu 14

Я вижу, вы используете Windows. Я не смог исправить это, включив любое из расширений, которые поставляются с моим сервером Windows WAMP. Я попробовал PDO_ODBC и другие и даже нашел Microsoft Official PDO_SQLSRV.

решение для меня было установить драйверы PDO_SQLSRV с веб-сайта третьей стороны. Я нашел драйверы через http://robsphp.blogspot.nl/2012/06/unofficial-microsoft-sql-server-driver.html

Я обычно не пользуюсь Dll от случайных сайтов, но я был в отчаянии, и это сработало для меня. Надеясь, что это может спасти других от многих часов разочарования.

Используя Laravel V 5.5.39 С Php 7.1.12 работает нормально, но более поздние (более новые) версии php вызывают проблему. Итак, измените версию Php и вы получите решение 100% .

Comments

    Ничего не найдено.