PHP连接PostgreSQL连接问题

/var/lib/pgsql/data/pg_hba.conf

CentOS 6.3下PostgreSQL 的安装与配置

http://www.cnblogs.com/mchina/archive/2012/06/06/2539003.html

postgresAdmin3

http://www.cnblogs.com/mchina/archive/2012/06/06/2539003.html

http://jingyan.baidu.com/article/3ea51489ec3cb452e71bba52.html

http://developer.51cto.com/art/201401/426225.htm

调试方法

[[email protected] ~]# php /var/www/html/pgsql.php
PHP Warning:  pg_connect(): Unable to connect to PostgreSQL server: FATAL:  Ident authentication failed for user "postgres" in /var/www/html/pgsql.php on line 3
连接失败,不能连接到数据库[[email protected] ~]#

看起来是帐号密码的问题

PostgreSQL 数据库默认会创建一个postgres的数据库用户作为数据库的管理员,默认密码为空,我们需要修改为指定的密码,这里设定为’postgres’。

# su - postgres

$ psql

postgres=# ALTER USER postgres WITH PASSWORD ‘postgres‘;
ALTER ROLE
postgres=# select * from pg_shadow ;
 usename  | usesysid | usecreatedb | usesuper | usecatupd |               passwd
                | valuntil | useconfig
----------+----------+-------------+----------+-----------+---------------------
----------------+----------+-----------
 dbuser   |    16384 | f           | f        | f         | md5baa6c789c3728a1a4
49b82005eb54a19 |          |
 postgres |       10 | t           | t        | t         | md53175bce1d3201d165
94cebf9d7eb3f9d |          |
(2 rows)

postgres=# \l
                                  List of databases
   Name    |  Owner   | Encoding |  Collation  |    Ctype    |   Access privileg
es   
-----------+----------+----------+-------------+-------------+------------------
-----
 david     | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
 postgres  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
 template0 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres
                                                             : postgres=CTc/post
gres
 template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres
                                                             : postgres=CTc/post
gres
 testdb    | dbuser   | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =Tc/dbuser
                                                             : dbuser=CTc/dbuser
(5 rows)

postgres=# ALTER USER dbuser WITH PASSWORD ‘dbuser‘;
ALTER ROLE
postgres=# \l
                                  List of databases
   Name    |  Owner   | Encoding |  Collation  |    Ctype    |   Access privileg
es   
-----------+----------+----------+-------------+-------------+------------------
-----
 david     | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
 postgres  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
 template0 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres
                                                             : postgres=CTc/post
gres
 template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres
                                                             : postgres=CTc/post
gres
 testdb    | dbuser   | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =Tc/dbuser
                                                             : dbuser=CTc/dbuser
(5 rows)

不过仍然有Ident authentication failed for user错误,

尝试修改 /var/lib/pgsql/data/pg_hba.conf, 去掉

#host    all         all         127.0.0.1/32          ident

service postgresql restart

service httpd restart

service postgresql restart

重新执行php,发现这次dbuser能访问了,只是dbuser 数据库不存在

[[email protected] ~]# php /var/www/html/pgsql.php
PHP Warning:  pg_connect(): Unable to connect to PostgreSQL server: FATAL:  database "dbuser" does not exist in /var/www/html/pgsql.php on line 3
连接失败,不能连接到数据库[[email protected] ~]#

修改php脚本:

<?php
// 连接,选择数据库
$dbconn = pg_connect("host=127.0.0.1 dbname=david user=dbuser password=dbuser");
//see if our connection was successful
if (!$dbconn) {
    //connection failed - exit the page with an error
    //you could also try to proceed without the
    //database - it‘s up to you
     echo "连接失败,不能连接到数据库";
    exit;
}else{
    echo "连接成功";
}
echo "<br>php配置详细信息如下:";
echo phpinfo();
// 关闭连接
pg_close($dbconn);
?>

这次命令行执行php 可以成功显示数据,但是用firefox执行该脚本,仍然显示error , Why?

PHP连接PostgreSQL连接问题

时间: 2024-07-30 17:27:45

PHP连接PostgreSQL连接问题的相关文章

Metasploit自动连接postgresql

1. 启动postgresql [email protected]:~# service postgresql start 2. 设置用户与数据库 [email protected]:~# su postgres [email protected]:/root$ createuser msf4 -P Enter password for new role: Enter it again: [email protected]:/root$ createdb --owner=msf4 msf4[em

kali linux 系列教程之metasploit 连接postgresql可能遇见的问题

kali linux 系列教程之metasploit 连接postgresql可能遇见的问题 文/玄魂   目录 kali linux 下metasploit 连接postgresql可能遇见的问题................................ 1 前言............................................................................................................... 1

metasploit连接postgresql数据库

metasploit 连接postgresql数据库: 1.打开postgresql服务:services postgresql start 2.进入postgresql中,设置默认用户密码.创建新用户.设置新用户权限.创建数据库: sudo -u postgres psql#进入postgresql默认的用户 alter user postgres with password '密码'; #设置默认用户的登录密码 create user '用户名' wiht password '密码' noc

kali linux 系列教程之metasploit 连接postgresql

前言 由于kali linux的版本不同,默认情况下对metasploit和postgresql的配置也不相同,导致我们启动metasploit后连接postgresql数据库会遇到无法连接的情况.下面就三种情况,简单的给大家描述一下,以及遇到问题的解决方案. 理想状态 理想情况下,只需要两步即可. 启动postgresql service postgresql start 启动mestasploit service metasploit start 在metasploit中输入db_statu

视频教程--ASP.NET MVC 使用 Petapoco 微型ORM框架+NpgSql驱动连接 PostgreSQL数据库

说好的给园子里的朋友们录制与<ASP.NET MVC 使用 Petapoco 微型ORM框架+NpgSql驱动连接 PostgreSQL数据库> 这篇博客相对应的视频,由于一个月一来没有时间录制,今天我兑现了给朋友们的承诺.. 本次视频教程的目录为 视频.代码.资料,其中视频有4段,资料是我收集的相关资料.. 视频下载地址:http://pan.baidu.com/s/1c05sysC 希望大家多多支持... 郝喜路 2014年6月8日 11:11:02   http://haoxilu.cn

KaLi 之 Metasploit 连接 postgresql 数据库

KaLi 连接 postgresql 数据库 查看 postgresql 是否启动,没有启动的话,使用 service postgresql start 命令启动.启动后查看是否启动成功,端口是 5432,如图所示: 启动 metasploit 后,查看 postgresql 的连接状态,命令是:db_status,如出现如下,证明没有连接. 查看 postgresql 的账户密码,地址是:  cat /opt/metasploit/apps/pro/ui/config/database.yml

python连接postgresql数据库

python可以通过第三方模块连接postgresql. 比较有名的有psycopg2  和python3-postgresql (一)psycopg2 ubuntu下安装 sudo apt-get install python3-psycopg2 创建一个test.py文件 import psycopg2 # 数据库连接参数 conn = psycopg2.connect(database="test1", user="jm", password="12

ubuntu中pgAdminIII无法连接postgreSQL

小笔记 修改了postgresql.conf文件和pg_hba.conf文件,再进行服务重启/etc/init.d/postgresql restart依然不能连接postgreSQL; 之后重新修改了密码[密码其实没有变],神奇的是竟然连接成功: postgres=# ALTER USER postgres WITH PASSWORD '×××';

BT5之Metasploit[MSF]连接postgresql数据库

1,先查看postgresql的端口,默认是自动开启的,端口7337 .   [email protected]:~# netstat -tnpl |grep postgres tcp        0      0 127.0.0.1:7337          0.0.0.0:*               LISTEN      1100/postgres tcp6       0      0 ::1:7337                :::*