我正在尝试通过Laravel连接PostgreSQL数据库,以便进行php工匠迁移,但似乎没有被定向,因为它正在读取MySQL的数据库名称.
以下是来自database.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.
php.ini
文件在Apache,WAMP(来自php文件夹)和PostgreSQL中进行了检查.这extension_dir
是正确的 - >extension_dir = "c:/wamp/bin/php/php5.5.12/ext/"
该extension=pdo_pgsql.dll
和extension=pgsql.dll
是注释.
完成PATH
"系统变量"中的技巧并重新启动.没有机会.
感谢你目前的帮助.
这些是我的司机php_pdo_driver.h
和php_pdo.h
来自C:\Program Files (x86)\PostgreSQL\EnterpriseDB-ApachePHP\php\SDK\include\ext\pdo
来自phpinfo的信息:
PHP版本5.5.12
编译器MSVC11(Visual C++ 2012)配置命令cscript/nologo configure.js"--enable-snapshot-build"" - disable-isapi"" - enable-debug-pack"" - without-mssql"" - without-pdo-mssql"" - without-pi3web"" - with-pdo-oci = C:\ php-sdk\oracle\x64\instantclient10\sdk,shared""--with-oci8 = C:\ php -sdk\oracle\x64\instantclient10\sdk,shared""--with-oci8-11g = C:\ php-sdk\oracle\x64\instantclient11\sdk,shared"" - enable-object-out-dir = ../obj/"" - enable-com-dotnet = shared"" - with-mcrypt = static"" - disable-static-analyze"" - with-pgo"
小智.. 72
务必配置'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
设置为正确的目录.它应该是PHP安装目录中名为extensions
或ext
类似的文件夹.
最后,复制libpq.dll
从C:\wamp\bin\php\php5.*\
进入C:\wamp\bin\apache*\bin
并通过WampServer界面重新启动所有服务.
如果仍然出现异常,则可能需要将postgres \bin
目录添加到PATH
:
系统属性 - >高级选项卡 - >环境变量
在窗口下半部分的"系统变量"组中,滚动查找PATH
条目.
选择它,然后单击编辑
在现有条目的末尾,将完整路径放到postgres bin目录中.bin文件夹应位于postgres安装目录的根目录中.
重新启动任何打开的命令提示,或者确定,重新启动计算机.
这应该有希望解决任何问题.有关更多信息,请参阅
http://php.net/manual/en/install.pecl.windows.php
http://webcheatsheet.com/php/install_and_configure.php#extsetup
Nasif Md. Ta.. 46
对于PDOException: could not find driver
for MySQL
,如果是Debian
基于OS,
sudo apt-get -y install php5-mysql
如果你在现代的基于Debian的操作系统上使用PostgreSQL,那就是`sudo apt-get -y install php7.0-pgsql`. (6认同)
Святослав Па.. 25
对于Ubuntu中的PHP 7,您还可以:
sudo apt-get install php7.0-pgsql
所以,现在你不能取消注释 php.ini
UPD:
我有同样的错误,所以问题不在驱动程序中.我改变了我database.ini
,但每次看到错误.我改变了数据库配置.env
并且错误消失了.
务必配置'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
设置为正确的目录.它应该是PHP安装目录中名为extensions
或ext
类似的文件夹.
最后,复制libpq.dll
从C:\wamp\bin\php\php5.*\
进入C:\wamp\bin\apache*\bin
并通过WampServer界面重新启动所有服务.
如果仍然出现异常,则可能需要将postgres \bin
目录添加到PATH
:
系统属性 - >高级选项卡 - >环境变量
在窗口下半部分的"系统变量"组中,滚动查找PATH
条目.
选择它,然后单击编辑
在现有条目的末尾,将完整路径放到postgres bin目录中.bin文件夹应位于postgres安装目录的根目录中.
重新启动任何打开的命令提示,或者确定,重新启动计算机.
这应该有希望解决任何问题.有关更多信息,请参阅
http://php.net/manual/en/install.pecl.windows.php
http://webcheatsheet.com/php/install_and_configure.php#extsetup
对于PDOException: could not find driver
for MySQL
,如果是Debian
基于OS,
sudo apt-get -y install php5-mysql
对于Ubuntu中的PHP 7,您还可以:
sudo apt-get install php7.0-pgsql
所以,现在你不能取消注释 php.ini
UPD:
我有同样的错误,所以问题不在驱动程序中.我改变了我database.ini
,但每次看到错误.我改变了数据库配置.env
并且错误消失了.
这对我有用:
$ sudo apt-get install php-gd php-mysql
我意识到这是一个老问题,但我在谷歌搜索中发现它,所以我会继续回答,以防万一其他人遇到这个问题.我在Mac上遇到了同样的问题,但是使用HomeBrew解决了这个问题.安装完成后,您可以运行以下命令:
brew install php56-pdo-pgsql
并使用任何版本的PHP替换56而不使用小数点.
我遇到过同样的问题.这对我有用.
有2个php.ini文件:
C:\ WAMP\BIN\apache的\ apache2.4.9\BIN
C:\ WAMP\BIN\PHP\php5.5.12
注意:这是使用我的PHP和Apache版本,改为你的版本.
位于这两个文件夹中的php.ini文件是您需要更新的,扩展名:
延长= php_pdo_pgsql.dll
延长= php_pgsql.dll
这些是取消注释所需的内容(删除;符号).
重新启动Wamp和命令提示符.
希望它对你有用:).