postgresql在linux上安装方法

发布网友 发布时间:2022-04-24 04:35

我来回答

3个回答

懂视网 时间:2022-04-07 21:36

近来有项目用到postgresql,之前没接触过,所以安装出了些问题,现在记录下来。

1.下载postgresql9.4,我用的版本是由官网下载下来的:http://download.csdn.net/detail/mu_wangyue/8679781(如果有朋友想按我的步骤来做的话,建议下载这个连接的)。下载后将postgresql-9.4.1-3-linux-x.run拷贝到linux上(可用xftp等工具传过去),我放在/usr/local/soft 目录下。

技术分享


2.修改文件权限,添加执行权限。命令:chmod 755 postgresql-9.4.1-3-linux-x.run

技术分享


3.在开始安装之前先添加安装目录,命令:mkdir -p /usr/local/sql/pgsql。运行postgresql-9.4.1-3-linux-x.run,直接输入文件名就行

技术分享


4.选择安装目录时,输入上一步新建的目录(也可以用默认目录安装),确认目录后直接回车

技术分享


5.postgresql有一个内置的最高权限用户postgres,设置该用户的密码

技术分享


6.设置端口号

技术分享


7.设置字符集

技术分享


8.输入“Y”键,确认安装数据库

技术分享


9.安装过程中可能会有警告,不用理会,继续安装

技术分享


经过以上步骤,postgresql安装完成,下面开始测试(一些配置会在遇到报错时讲解,便于理解配置的作用及查找错误)

1.切换到postgres用户,用安装目录下的 psql 命令连接数据库。在连接的时候会有报错:

psql.bin: could not connect to server: 没有那个文件或目录
    Is the server running locally and accepting
    connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

如图:

技术分享

我们可以到 /tem 目录中查找,的确不存在 “.s.PGSQL.5432” 文件。解决方法有两个,一个重启(这个涉及到其他问题,先不讲),另一个加上“-h”。


2.输入命令 “/usr/local/sql/pgsql/bin/psql -h 127.0.0.1” 后,上一个问题解决了,可新的问题出现了。报错:

psql.bin: could not connect to server: 拒绝连接
    Is the server running on host "127.0.0.1" and accepting
    TCP/IP connections on port 5432?

如图:

技术分享

引起这个问题的原因是数据库服务未启动。


3.启动数据库,用bin 目录下 pg_ctl 命令。但是在启动前要先设置log和data目录。在 ”/usr/local/sql“ 目录下创建 ”pgdata" 和 "pglog" 目录。

技术分享

启动命令:/usr/local/sql/pgsql/bin/pg_ctl start -D /usr/local/sql/pgdata/ -l /usr/local/sql/pglog/

技术分享

这是说pgdata只是一个普通目录,而不是 “database cluster”目录。要让我们自己创建的pgdata目录变成“database cluster” 目录使用 bin 下的 initdb 命令

技术分享

上边失败的原因是找不到要“database cluster”的目录,要么用 -D 的方式指定目录,要么配置环境变量PGDATA。这里采用配置环境变量的方式。

修改 /etc/profile ,配置环境变量。“vi /etc/profile"。在文件尾加上如下配置:

#set postgresql environment
PG_HOME=/usr/local/sql/pgsql
PGDATA=/usr/local/sql/pgdata
PATH=$PG_HOME/bin:$PATH
export PG_HOME PGDATA PATH

重启linux使配置生效。执行命令 ”initdb" (因为配置了环境变量,不用打目录),报错

initdb: cannot be run as root
Please log in (using, e.g., "su") as the (unprivileged) user that will
own the server process.

不能用root用户来启动,新建用户postgres,并将data目录的拥有者换为postgres

技术分享

再次执行命令 “initdb”,执行成功后,pgdata目录下有内容:

技术分享

运行命令启动即可:pg_ctl -D /usr/local/sql/pgdata/ -l /usr/local/sql/pglog/ start


===========================================================================================================

其实真正安装并没有这么复杂,上边写的只是为了显示那些报错,以便知道如何修改。

简单的安装方法

1.在安装前建立3个目录:pgsql、data、log

2.安装时指定安装目录及data目录(不指定为默认)

技术分享


3.安装完成后,3个目录如下(系统自动建立postgres用户,data目录也变成“database cluster” 目录):

技术分享


4.执行命令:pg_ctl -D /usr/local/common/postgresql/data -l /usr/local/common/postgresql/log start 启动服务即可



linux下安装postgresql并配置远程图形桌面连接

标签:postgresql linux 安装

热心网友 时间:2022-04-07 18:44

不考虑系统版本、安装的系统是不是最小化安装、pgsql版本等问题,那么正常应该是下面的安装方法就可以成功的,如果想可以远程连接,则要在防火墙里开放端口5432。

三、安装PostgreSQL
# cd /usr/local/src/
# tar zxf postgresql-9.2.4.tar.gz
# cd postgresql-9.2.4
# ./configure --prefix=/usr/local/pgsql
# make
# make install

//和mysql一样建立组和用户
# groupadd postgres
# useradd -g postgres postgres

//给pgsql创建一个数据库的文件夹
# mkdir /usr/local/pgsql/data
//设置data文件夹属于哪个用户
# chown postgres:postgres /usr/local/pgsql/data
//切换到postgres用户
# su - postgres
//生成数据库
$ /usr/local/pgsql/bin/initdb --encoding=UTF-8 --no-locale -D /usr/local/pgsql/data
$ exit
//复制启动文件
# cp /usr/local/src/postgresql-9.2.4/contrib/start-scripts/linux /etc/init.d/postgresql
//设置开机启动
# chmod 755 /etc/init.d/postgresql
# chkconfig --add postgresql
# chkconfig postgresql on
# /etc/init.d/postgresql start

//修改配置文件
# vim /usr/local/pgsql/data/postgresql.conf
listen_addresses = '*' //是否允许其他计算机访问
port = 5432 //通过哪个端口访问

//这个网上查说是身份验证,大概就是要不要加密里之类的吧,没具体查过。
这里要注意,你的ip是ipv4还是ipv6,写到相应的条目下面,不要写错了。
另:如果复制粘贴的话有时候会出错,原因未知。建议自己手写。
# vim /usr/local/pgsql/data/pg_hba.conf
host  all   all   0.0.0.0  0.0.0.0   trust

# /etc/init.d/postgresql restart

//看看能否正常进入postgreSQL
# /usr/local/pgsql/bin/psql -U postgres -W
# \q

热心网友 时间:2022-04-07 20:02

sudo apt-get install postgresql-9.2

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com