您的位置:首页 > 数据库

记录PostgreSQL安装的一些问题

2017-03-18 22:17 429 查看
主要参照这篇文章:http://m.blog.csdn.net/article/details?id=8314216

还有这篇:http://m.blog.csdn.net/article/details?id=51422691

一、首先使用sudo apt-cache search all | grep postgresql

发现库里只有9.3版本的postgresql

下载9.6版本bz2包解压缩

tar jxvf postgresql-9.6.2.tar.bz2

二、安装依赖

sudo aptitude install libreadline6-dev

sudo apt-get install gcc

sudo apt-get install zlib1g-dev

三、使用源码方式安装

./configure

make

sudo make install

四、运行命令

sudo adduser postgres

passwd:pgsys

sudo mkdir /usr/local/pgsql/data

sudo chown postgres /usr/local/pgsql/data/

sudo su - postgres

/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data

/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data > logfile 2>&1 &

作为服务重新启动

#service postgresql restart

五、不能连接Postgresql数据库5432端口的问题

第一步:PostgreSQ数据库为了安全,它不会监听除本地以外的所有连接请求,当用户通过JDBC访问是,会报一些如下的异常:

org.postgresql.util.PSQLException: FATAL: no pg_hba.conf entry for host

pgAdmin登录时也会报错:

FATAL: no pg_hba.conf entry for host "218.10.12.207", user "postgres", database "testdb", SSL off FATAL: no pg_hba.conf entry for host "218.10.12.207", user "postgres", database "testdb", SSL on

 

要解决这个问题,windows下只需要在PostgreSQL数据库的安装目录下找到/data/pg96/pg_hba.conf,

linux下vim /etc/postgresql/9.3/main/pg_hba.conf

找到

# IPv4 local connections:

host all all 127.0.0.1/32 md5

在其下加上请求连接的机器IP

host all all 218.10.12.207/32 md5

32是子网掩码的网段,用32表示该IP被固定,用24表示前3位固定,后面一位可以由自己设;md5是密码验证方法,

例:如果为“host all all 192.168.91.1/24 md5” ,则前3位ip地址与该设定相同的计算机就可以访问postgresql数据库。

下面这句没有使用也能连接:

找到“# IPv4 local connections:”(不包括引号,下同)

 在它上面添加“local pgsql all trust”,

第二步:如果报错 could not connect to server: Connection refused (0x0000274D/10061) Is the server running on host "120.92.82.112" and accepting TCP/IP connections on port 5432?

vim /etc/postgresql/9.3/main/postgresql.conf

找到“#listen_addresses = 'localhost'”,把它改成“listen_addresses = '*'”。修改listen_addresses为对外的interface的ip地址似乎也可以

这样,postgresql就可以监听所有ip地址的连接。 

第三步:重启postgresql服务。如果系统启用了防火墙,请先关闭。 

sudo ufw disable

关闭防火墙也不好使

nmap iptables

对了,如果要使用pgadmin连接远程的数据库服务器,须在SSL的选项中选择允许。

第四步:使用telnet测试端口号是否开放,如果系统提示不能识别telnet则需要在控制面板-程序和功能-打开或关闭windows功能中勾选telnet客户端

telnet 120.92.82.111 5432

查看端口状态

netstat -tanp

netstat -an | grep 5432

其中t代表TCP协议的套节字链接,除了t之外还有u(UDP)、w(RAW)、x(UNIX)套节字。

a代表全部(all),这个所谓的全部就是指包括正在监听的端口。某时某刻,有些被打开的端口正在传输据,而有的则只是在监听。

n:直接显示端口号,而不是根据“/etc/server”显示端口对应的服务名称

p:显示占用该端口号的进程。

l:显示正在被监听的端口。
查看完了也没用,实用的是找PID,然后kill

lsof -i:5432

六,postgresql使用相关

1,修改PostgreSQL数据库默认用户postgres的密码

PostgreSQL数据库创建一个postgres用户作为数据库的管理员,密码随机,所以需要修改密码,方式如下:

步骤一:登录PostgreSQL

sudo -u postgres psql

步骤二:修改登录PostgreSQL密码

ALTER USER postgres WITH PASSWORD 'postgres';

注:密码postgres要用引号引起来

命令最后有分号

步骤三:退出PostgreSQL客户端

\q

2,修改linux系统postgres用户的密码

PostgreSQL会创建一个默认的linux用户postgres,修改该用户密码的方法如下:

步骤一:删除用户postgres的密码

sudo passwd -d postgres

步骤二:设置用户postgres的密码

sudo -u postgres passwd

系统提示输入新的密码

Enter new UNIX password:

Retype new UNIX password:

passwd: password updated successfully

3,切换用户postgres连接数据库,使用psql命令行方式

sudo -u postgres psql

可以用图形化界面连接管理数据库

下载地址:https://www.postgresql.org/ftp/pgadmin3/pgadmin4/v1.2/windows/

还有windows版的postgresql

下载地址:https://www.bigsql.org/postgresql/installers.jsp

PostgreSQL快速入门:psql工具的使用:http://www.open-open.com/lib/view/open1451809003901.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: