CakePHP3は自分のPostgreSQLデータベースに接続できません。CakePHPはPostgresに接続できません。しかし、Pgadmin4は
私のセットアップは以下の通りです:
- のWindows 10ホスト
- CentOS7 VirtualboxのVMゲスト
- のPostgreSQL 9.6
- のApache 2.4
- PHP 7
エラー:
CakePHPはデータベースに接続できません。
SQLSTATE [08006] [7]サーバーに接続できませんでした:Permission deniedサーバーがホスト "localhost" ?サーバーに接続できませんでした:アクセスが拒否されましたサーバーがホスト "localhost"(127.0.0.1)で実行されており、ポート5432でTCP/IP接続を受け入れていますか?
私はlocalhost
,127.0.0.1
、192.168.2.31
をapp.phpのホスト値として指定しようとしました。彼らはすべて同じエラーを出します。
すべて失われていない、私は以下のようにPostgreSQLのに到達することができます:
- は、SSH経由で接続Pgadmin4
- を使用して、私のワークステーションを介してサーバに接続して、私はpsqlの
[[email protected] ~]$ psql -U my_user -h 127.0.0.1 -d my_db
更新#1
デフォルトデータベース構成
'default' => [
'className' => 'Cake\Database\Connection',
'driver' => 'Cake\Database\Driver\Postgres',
'persistent' => true,
'host' => 'localhost',
/**
* CakePHP will use the default DB port based on the driver selected
* MySQL on MAMP uses port 8889, MAMP users will want to uncomment
* the following line and set the port accordingly
*/
//'port' => 5432,
'username' => 'user',
'password' => 'pass',
'database' => 'my_db',
'schema' => 'public',
'encoding' => 'utf8',
'timezone' => 'UTC',
'flags' => [],
'cacheMetadata' => true,
'log' => false,
/**
* Set identifier quoting to true if you are using reserved words or
* special characters in your table or column names. Enabling this
* setting will result in queries built using the Query Builder having
* identifiers quoted when creating SQL. It should be noted that this
* decreases performance because each query needs to be traversed and
* manipulated before being executed.
*/
'quoteIdentifiers' => false,
/**
* During development, if using MySQL < 5.6, uncommenting the
* following line could boost the speed at which schema metadata is
* fetched from the database. It can also be set directly with the
* mysql configuration directive 'innodb_stats_on_metadata = 0'
* which is the recommended value in production environments
*/
//'init' => ['SET GLOBAL innodb_stats_on_metadata = 0'],
//'url' => env('DATABASE_URL', null),
]
更新#2
phpinfo
データを有しながらPostgreSQLの
PDO
PDO support enabled
PDO drivers mysql, pgsql, sqlite
pdo_pgsql
PDO Driver for PostgreSQL enabled
PostgreSQL(libpq) Version 9.2.15
Module version 7.0.13
Revision $Id: f9b0c62eba234361d62f16fcbaaa120353ab5175 $
pgsql
PostgreSQL Support enabled
PostgreSQL(libpq) Version 9.2.15
PostgreSQL(libpq) PostgreSQL 9.2.15 on x86_64-redhat-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-4), 64-bit
Multibyte character support enabled
SSL support enabled
Active Persistent Links 0
Active Links 0
Directive Local Value Master Value
pgsql.allow_persistent On On
pgsql.auto_reset_persistent Off Off
pgsql.ignore_notice Off Off
pgsql.log_notice Off Off
pgsql.max_links Unlimited Unlimited
pgsql.max_persistent Unlimited Unlimited
更新#3
について実行中: tcpdump -i lo port 5432 -w pg.cap
psql
を使用したときにいくつかのパケットがありました。しかし、私はCakePHPを通して自分のサイトにアクセスするときにパケットを取得しません。RedHatのに基づいて、Linuxディストリビューションに
pg_hba.conf
host all all ::1/128 md5
host all all 0.0.0.0/0 md5
host all all 127.0.0.1/32 md5
データベース構成の 'DATABASE_CONFIG'クラスを表示してください。 – Artegon
私の更新#1を参照してください。 – TekiusFanatikus
ステップ1 - データソースの設定で資格情報を確認し、コマンドラインで同じものを使用します。 – Artegon