在CentOS上安装PostgreSQL并配置扩展
PostgreSQL
选择安装版本
咱的服务器系统是centos7.9
1 | # cat /etc/centos-release |
官网的安装命令:PostgreSQL: Linux downloads (Red Hat family)
选择好版本
把安装命令复制,执行
1 | # Install the repository RPM: |
配置
通过以上步骤,自带了一个postgres管理员用户
su postgres 切换到此用户,psql登录
1 | # su postgres |
配置文件路径
1 | cd /var/lib/pgsql/14/data |
修改监听IP和端口
1 | vi postgresql.conf |
1 | 第60行,注意去掉开头的# |
修改连接权限
pg_hba.conf
最后面的
1 | # TYPE DATABASE USER ADDRESS METHOD |
这里咱修改了IPv4的连接, 改成了0.0.0.0/0,允许远程访问。当然,服务器也要开放5432端口。
method是认证方式,9.2的默认是ident,通过登录账户的用户名匹配,需要改成md5或者scram-sha-256
重启服务
1 | service postgresql-14 restart |
参考:
(5条消息) PostgreSQL远程连接配置管理/账号密码分配(解决:致命错误: 用户 “postgres” Ident 认证失败)…_weixin_33851177的博客-CSDN博客
PostgreSQL新手入门 - 阮一峰的网络日志 (ruanyifeng.com)
使用GUI远程登录
因为咱是在服务器上配置好的,如果本地要使用命令行也行,GUI能更直观地显示一些信息
这里以pgAdmin为例,点击server,选择Add New Server
配置相关的信息
如果不记得postgres的密码,可以参考下面的用户管理,修改postgres的密码
用户管理
登录
1 | psql -U postgres #用户名 |
显示用户信息
use the \du
to list all user accounts (or roles) in the current PostgreSQL database server
The \du+
command adds an additional column called description
.
更改密码
1 | postgres=# alter role "username" WITH PASSWORD '*****'; |
添加用户
1 | CREATE USER 用户名 WITH PASSWORD '*****'; |
使用user
是带登录权限,role
是不带登录权限
如果要授权登录
1 | alter user 用户名 with login |
授权
1 | postgres=# grant all privileges on database 数据库名 to 用户名; |
几个常用的命令
启动、重启、状态
1 | service postgresql-14 start |
与MySQL对比
(1)列出所有的数据库
1 | mysql: show databases |
(2)切换数据库
1 | mysql: use dbname |
(3)列出当前数据库下的数据表
1 | mysql: show tables |
(4)列出指定表的所有字段
1 | mysql: show columns from table name |
(5)查看指定表的基本情况
1 | mysql: describe tablename |
(6)退出登录
1 | mysql: quit 或者\q |
(7)查看pgsl版本
1 | pg_ctl --version |
(8)命令行登陆数据库
1 | psql -h 192.168.2.125 -p 5432 <dbname> <username> |
(9)修改密码
1 | psql登陆 |
参考:
卸载
如果配置错了,或者版本选错了,想重新来过
You can also use grep
in conjunction with YUM’s list
command to return a list of all package instances of PostgreSQL:
1 | yum list installed | grep postgres |
Uninstall the PostgreSQL package using YUM remove
1 | yum remove {POSTGRESS-PACKAGE NAME} |
How To Completely Uninstall PostgreSQL | ObjectRocket
PostGIS
如果安装PostgreSQL是安装上面步骤,那么仅需执行
1 | yum install postgis31_14 |
31是postGIS的版本即3.1,14是对应的PostgreSql的版本(一定要对应,不然又会重新安装一个PostgreSql)
安装好的扩展会在/usr/pgsql-14/share/extension
路径下
参考:
pgRouting
基本与PostGIS相同,仅需执行
1 | yum install pgrouting_14 |
14对应PostgreSql的版本
加载扩展(GUI)
选择需要增加扩展的数据库,点击菜单栏Tools->Query Tool,出现Query窗口,输入
1 | create extension postgis; |
如果执行成功