CakePHP3 не может подключиться к моей базе данных PostgreSQL.CakePHP не может подключиться к Postgres. Однако Pgadmin4 может быть
Моя установка заключается в следующем:
- для Windows 10 хост
- CentOS7 Virtualbox VM гостю
- PostgreSQL 9,6
- Apache 2.4
- PHP 7
Ошибка:
CakePHP НЕ может подключиться к базе данных.
Не удалось установить соединение с базой данных: SQLSTATE [08006] [7] не удалось подключиться к серверу: запрещено разрешение Сервер работает на хосте «localhost» (:: 1) и принимает соединения TCP/IP на порту 5432 ? не удалось подключиться к серверу: разрешено ли разрешение Сервер работает на хосте «localhost» (127.0.0.1) и принимает соединения TCP/IP на порту 5432?
Я попытался указать localhost
, 127.0.0.1
и 192.168.2.31
как значение моего хоста в app.php. Они все выдают ту же ошибку.
не все потеряно, я могу достичь PostgreSQL следующими способами:
- подключения к серверу с помощью моей рабочей станции с помощью Pgadmin4
- подключен через SSH, я могу подключиться через использование Psql
[[email protected] ~]$ psql -U my_user -h 127.0.0.1 -d my_db
Update # 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),
]
Update # 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
Update # 3
Хотя с tcpdump
running: tcpdump -i lo port 5432 -w pg.cap
У меня есть некоторые пакеты, когда я использовал psql
. Тем не менее, я не получаю никаких пакетов при доступе к моему сайту через CakePHP.
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