Linux下安装PostgreSQL
1. 下载PostgreSql
下载的是x86-64的包,为:postgresql-10.7-2-linux-x64-binaries.tar.gz,下载之后准备安装
2. 安装配置
检查PostgreSQL 是否已经安装
rpm -qa | grep postgres 检查PostgreSQL 是否已经安装
rpm -qal | grep postgres 检查PostgreSQL 安装位置
若已经安装,则使用rpm -e 命令卸载
# rpm -e postgresql94-contrib-9.4.4-1PGDG.rhel6.x86_64 postgresql94-server-9.4.4-1PGDG.rhel6.x86_64
# rpm -e postgresql94-libs-9.4.4-1PGDG.rhel6.x86_64 postgresql94-9.4.4-1PGDG.rhel6.x86_64
参考链接:
https://www.cnblogs.com/qiyebao/p/4562557.html
1) 解压PG
切到opt目录下,创建文件夹postgresql: mkdir postgresql
通过FTP工具上传安装包到/opt/postgresql目录下
切到/opt/postgresql目录解压PG安装包:
# tar -xvzf postgresql-10.7-2-linux-x64-binaries.tar.gz
解压出来之后目录为pgsql
2) 创建postgres用户
创建pgsql用户并设置密码(因为root用户启动会报错):
useradd postgres
passwd postgres
# 两次输入密码并确认
为方便切换postgres用户方便,我这里改为无密码切换:
passwd -d postgres
3) 创建pgsql数据目录
#: mkdir data
4) postgres用户设置权限,切换到/opt目录下
给postgres用户授权目录访问权限:chown -R postgres:postgres postgresql/
pgsql数据库就以postgres为默认用户,执行:su postgres
5) 初始化数据库
切到/opt/postgresql目录下初始化数据库:./pgsql/bin/initdb -D data/
6) 配置数据库远程访问,
PG默认只能本机访问,但是实际情况中,应用服务器多单独部署,需要开通PG的远程访问权限,且是需要配置用户密码的。需要修改data目录下postgres.conf, pg_hba.conf文件。如果找不到文件在哪,使用 find命令搜索:find / -name postgresql.conf
配置postgresql.conf文件 :# vim postgresql.conf
主要配置参数详解:
修改listen_addresses='localhost'
为listen_addresses='*' --- 修改成'*'全部ip都可以访问改数据库
配置pg_hba.conf文件: #vim pg_hba.conf
末尾添加本行:
host all all 0.0.0.0/0 md5
7) 配置环境配置
编辑~/.bash_profile文件
#vim ~/.bash_profile
设置以下的环境变量
export PGHOME=/opt/postgresql/pgsql/bin/psql
export PGDATA=/opt/postgresql/data
设置环境变量立刻生效
#source ~/.bash_profile
3. 修改postgres用户密码
切换系统用户为# su postgres,
切换到/opt/postgresql/pgsql/bin目录下,通过./psql -h 172.20.32.210 -U postgres登录Postgres数据库,进入数据后,使用SQL来为用户修改默认密码:
postgres=# alter user postgres with password ‘postgres’;
示例如下:
# su postgres
# psql -h 172.20.32.210 -U postgres
postgres=# alter user postgres with password 'postgres';
#ALTER ROLE
4. 启动PG
启动Postgres数据库
切到/opt/postgresql/pgsql目录下
启动命令:./bin/pg_ctl -D ../data/ -l logfile start
停止Postgres数据库:
切到/opt/postgresql/pgsql目录下
停止命令:./bin/pg_ctl -D data/ stop
重启Postgres数据库
切到/opt/postgresql/pgsql目录下
重启命令:./bin/pg_ctl -D ../data/ -l logfile restart
查看系统中运行的postgres进程:
#ps -ef | grep postgres
5. 创建用户
切换到/opt/postgresql/pgsql/bin目录下
通过./psql -h 172.20.32.210 -U postgres登录Postgres
比如我创建VIAS新用户,示例如下:
1) 创建数据库新用户VIAS
postgres=# CREATE USER “VIAS” WITH PASSWORD 'VIAS';
2) 创建用户数据库,如'VIAS':
postgres=# CREATE DATABASE “VIAS” OWNER “VIAS”;
3) 授予用户数据库权限
postgres=# GRANT ALL PRIVILEGES ON DATABASE “VIAS” TO “VIAS”;
注意:使用Navicat登录,数据库名和用户名为小写:
6. Postgres日常服务管理
启动数据库:pg_ctl start -D /data/postgres
重启数据库: pg_ctl restart -D /data/postgres
停止数据库:pg_ctl stop -D /data/postgres
强制重启:pg_ctl restart -D /data/postgres -m f
强制停止:pg_ctl stop -D /data/postgres -m f
加载配置:pg_ctl reload -D /data/postgres
显示服务状态:pg_ctl status -D /data/postgres
连接数据库: psql -h 127.0.0.1 -U postgres -p 5432 -d postgres -W
7. 常见问题
问题1:psql版本和server版本不一致的解决办法
参考链接:https://blog.****.net/pg_hgdb/article/details/80321354
编写不易,如果有帮助到您,喜欢点赞!