我試圖通過php腳本連接到虛擬機中的PostgreSQL數據庫,但不成功。PHP - 連接虛擬機中的PostgreSQL數據庫失敗
我從主機(Windows 8.1)執行php,而postgresql在虛擬機(Debian 8.6)。我使用VirtualBox。
來自瀏覽器的輸出誤差爲:
警告:pg_connect():無法連接到PostgreSQL服務器:無法連接到服務器:連接超時(0x0000274C/10060)是運行在主機上的服務器「 10.0.2.15「並接受端口5432上的TCP/IP連接?在第11行的C:\ xampp \ htdocs \ pg_test.php中,第11行爲
, , ,,第11行爲pg_connect($conn_string)
。
傳遞給pg_connect($conn_string)
的參數是:
$host = "host=10.0.2.15";
$port = "port=5432";
$dbname = "dbname=postgres";
$user = "user=user_switch";
$password = "password=switch";
$conn_string = "$host $port $dbname $user $password";
pg_connect($conn_string);
我使用host=10.0.2.15
因爲我查(用ifconfig),客人有IP 10.0.2.15
。
我修改的文件pg_hba.conf
和postgresql.conf
,以包括行:
的pg_hba.conf:
host all all 0.0.0.0/0 trust
postgresql.conf中:
listen_addresses = '*'
在iptables
我添加規則-A INPUT -p tcp -m cp --dport 5432 -j ACCEPT
我也嘗試通過禁用Windows主機上的防火牆。
在一些地方,他們說SELinux阻止連接,但我沒有安裝它在客人。
我能夠使用命令psql -d postgres -U user_switch -W -h localhost
中的用戶「user_switch」成功連接到數據庫,其中它提示我輸入密碼。
在此先感謝,請隨時詢問我可能已經忘記的更多規格。
您可以使用'psql -d postgres -U user_switch -W -h 10.0.2.15'從來賓機連接嗎? – pietrop
@pietrop它給出了這個錯誤:'psql:FATAL:pg_hba中沒有行。conf爲<<10.0.2.15>>,用戶<>,數據庫<>,SSL無效' –