记录PostgreSQL安装的一些问题

主要参照这篇文章:http://m.blog.youkuaiyun.com/article/details?id=8314216

还有这篇:http://m.blog.youkuaiyun.com/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



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值