原文地址:https://my.oschina.net/u/4274636/blog/4325434
一、安装postgresql
1.下载安装包
我选择的是postgresql-9.6.19
,这里需要下载的是它的二进制文件(提取码:sbab
)。
也可以直接从官网上下载:wget
https://get.enterprisedb.com/postgresql/postgresql-9.6.19-1-linux-x64-binaries.tar.gz
。
下面开始进行操作,请注意操作的用户以及路径。
2.创建工作路径并解压压缩包
创建一个目录:mkdir -p /usr/local/postgre
;
然后切换到该目录并解压安装压缩包:tar -zxvf postgresql-9.6.19-1-linux-x64-binaries.tar.gz
;
3.创建postgresql的默认用户postgre并设置密码
提示:现在是在root用户下;
创建postgres用户:useradd postgres
;
设置密码:passwd postgres
,然后会让你两次输入你的密码;
然后我们就可以切换到postgres
用户来操作数据库,pgsql数据库会默认以postgres
为默认用户。
切换用户:su postgres
;
切换到root用户:su root
(会提示你输入root的登录密码)。
4.创建postgre的数据目录
这个数据目录与上面的工作路径是平级的,所以
创建postgre的数据目录:mkdir /usr/local/pgsqlgre/pgsql_data
;
5.配置postgresql环境变量
配置完postgresql
环境变量以后我们就可以在任何路径使用postresql
了。
所有的环境变量都需要在/etc/profile文件里面进行配置,所以我们进入这个文件里面:vi /etc/profile
;
然后按shift+g自动跳到文件末尾,在末尾处增加:
export PGDATA= ``/usr/local/postgre/pgsql/bin
(注意路径,别无脑复制粘贴)。
提示:如果提示你当前用户没有权限的话,请切换到root用户操作。
刷新该文件即可生效:source /etc/profile
。
6.验证
到这里就完成本步骤了,可通过psql --version
确认postgresql是否安装成功。
二、初始化postgresql
1.初始化数据库
这里的用户需要选切换postgres
用户,su postgres
;
进入到postsql工程目录下,cd /usr/local/postgre/pgsql
;
(重要)执行初始化数据库的命令:bin/initdb -D ``/usr/local/pgsqlgre/pgsql_data
;
等待执行完毕,没什么问题就初始化成功了。
2.启动数据库
根据上面初始化完后的提示,启动数据库:/usr/local/postgre/pgsql/bin/pg_ctl -D /usr/local/postgre/pgsql_data/ -l logfile start
这里-l
指定日志文件位置,这里直接输出当前目录下的logfile中,这个可以自己指定,这里-D
指定数据目录,默认如果不加数据目录直接报错找不到,可以在环境变量配置文件中加入一行: export PGDATA=/opt/pgsql_data
然后source刷新即可,这样pgsql会自动去找PGDATA环境变量值,找不到才会报错。
如果提示当前用户权限不够的话,可以先切换至root用户后对pgsql这个文件做打开权限设置:chmod -R 777 /``usr/local/postgre/pgsql
3.验证
(1).查看进程
执行查看进程的命令查看postgresql
是否启动:ps -ef | grep postgres
,就可以看到相关进程;
(2).查看网络监听情况
pgsql默认的端口号为5432,通过netstat命令或者lsof命令都可以看到监听情况:lsof -i:5432
或者 netstat -an | grep 5432
;
现在可以看到pgsql默认监听的是localhost
或127.0.0.1
。
三、配置远程连接
目前只能本机访问,如果远程访问就连接不上了,具体的配置文件是:/usr/local/postgre/pgsql_data
目录下的postgresql.conf
,可以通过修改这个配置文件来调整各个参数,比如:listen_addresses
可以修改绑定的地址,默认是localhost
,port
可以修改监听的端口号,默认是5432
,max_connections
可以修改最大客户端连接数量,默认是100等等。
首先可以通过命令:find / -name postgresql.conf
找到该文件的路径信息(虽然上面我也提到了)。
进入postgresql.conf
后修改为listen_address='*'
。
然后在同目录下对pg_hba.conf
修改,在末尾处添加:hostlocal all all 0.0.0.0/0 md5
最后再重新启动数据库使之生效即可:/usr/local/postgre/pgsql/bin/pg_ctl -D /usr/local/postgre/pgsql_data/ -l logfile stop
/usr/local/postgre/pgsql/bin/pg_ctl -D /usr/local/postgre/pgsql_data/ -l logfile start