从CentOS仓储安装
1
直接通过仓储安装:
sudo yum install postgresql-server postgresql-contrib
2
初始化数据库,启动PostgreSQL:
sudo postgresql-setup initdb
sudo systemctl start postgresql
3
将PostgreSQL加入Systemd中:
sudo systemctl enable postgresql
配置用户信息、数据库
默认地,PostgreSQL为Linux创建了一个无home目录的用户postgres,用于访问数据库软件目录。
小心:
这个postgres用户不应该用于其它目的(例如,连接其它网络)。这样会给数据库安全带来风险。
更改postgres密码:
1
sudo passwd postgres
下面方式是更改postgres数据库用户密码。确保使用的newpassword是强类型密码:
2
PostgreSQL会自动创建postgres用户, 创建数据库之前, 要用postgres用户或root用户登录并重置postgres用户密码.
su -l postgres
连接数据库, psql命令会激活PostgreSQL数据库终端:
psql
重置postgres用户密码:
postgres=# \password
退出命令:
\q
退出命令:
exit
注意这里的postgres用户不同于Linux的那个postgres用户。Linux的postgres是用于访问数据库,这个PostgreSQL用户是负责该数据库的管理任务处理。
开启远程连接 :
1)修改 /var/lib/pgsql/data/pg_hba.conf(默认)或者数据库目录下的pg_hba.conf
新增一行如下:
host all all 0.0.0.0/0 md5
2)修改修改 /var/lib/pgsql/data/postgresql.conf(默认)或者数据库目录下的postgresql.conf
3)找到 listen_addresses = ‘127.0.0.1’ 去掉注释修改为 listen_addresses = ‘*’
4)port = 5432 (change requires restart) 去掉注释打开端口
5) 重启 sudo systemctl restart postgresql
6) 查看postgresql状态:sudo systemctl status postgresql
####安装PostGIS
PostGIS可以由CentOS仓储安装:
sudo yum -y install postgis.x86_64 postgis-client.x86_64 postgis-debuginfo.x86_64 postgis-devel.x86_64 postgis-docs.x86_64 postgis-utils.x86_64
postgresql 数据库生成插件:postgis
create extension postgis ;
错误:
ERROR: database "databasename" is being accessed by other users DETAIL: There are 2 other sessions using the database.
解决:
select pid from pg_stat_activity where DATNAME = 'databasename';
服务端
进入postgresql
su -l postgres
psql
postgres-# \q
-bash-4.2$ kill 6688