首先感激这篇文章作者,都是按照这篇文章指导做的,安装没什么问题。自己转载记录一下,同时收集记录一些常用命令并置顶,可能不方便阅读,希望理解!

常用命令:

\q:退出数据库

\du:查看用户及权限

./psql -V:查看Postgresql的版本(在bin目录下的命令)

./psql -l:查看所有数据库

./createdb -T template_postgis demo:以template_postgis为模板创建demo数据库(前提是模板存在)

环境及资源

  • Linux版本:CentOS release 6.5
  • PostgresSQL版本:postgresql-10.1
  • PostgreSQL官网下载地址:https://www.postgresql.org/ftp/source/v10.1/

    我下载的是postgresql-10.1.tar.gz

  • 参考文档:推荐看英文文档

    1)英文文档:https://www.postgresql.org/docs/10/static/install-short.html

    2)中文文档:http://www.postgres.cn/docs/9.3/install-short.html

  • DBeaver下载地址:https://dbeaver.jkiss.org/download/

    我下载的是社区版Windows 64 bit (zip archive)  (dbeaver-ce-4.3.0-win32.win32.x86_64.zip)

  • DBeaver jdbc驱动下载地址:https://jdbc.postgresql.org/download.html#current

    我下载的是PostgreSQL JDBC 4.2 Driver, 42.1.4

 

正文

安装路径为/usr/local/pgsql/

 

1、 解压


gunzip postgresql-10.1.tar.gz

tar xf postgresql-10.1.tar


 

 

 

2、 依次执行命令

* 需要的话,make可以改为gmake

./configure

make

su

make install

adduser postgres

mkdir /usr/local/pgsql/data

chown postgres /usr/local/pgsql/data

su - postgres

/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data

/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data >logfile 2>&1 &

/usr/local/pgsql/bin/createdb test

/usr/local/pgsql/bin/psql test


./configure是检查当前环境能否安装PG,以下是我遇到的报错和解决方案

报错1:configure: error: no acceptable C compiler found in $PATH:

解决:yum install gcc

 

报错2:configure: error: readline library not found

解决:yum install readline-devel

 

3、 启动或重启server

* 先确保是切换到了/pgsql/bin目录下,并且切换Linux用户postgres


cd /usr/local/pgsql/bin/ su – postgres


 

启动server:


./pg_ctl start -D /usr/local/pgsql/data


如果启动成功,显示信息如下

至此,PostgreSQL安装成功。

 

重启server:


./pg_ctl restart -D /usr/local/pgsql/data


如果重启成功,显示信息如下

 

4、 新建数据库和可以登录数据库的用户密码

* 确保是在/usr/local/pgsql/bin/目录下

创建数据库:


./createdb mydb


 

创建用户(如用户名为lin,密码为LinBug)有两种方式,

1) CREATE USER或CREATE ROLE:CREATE USER是CREATE ROLE的一个别名。 唯一的区别是CREATE USER命令缺省是LOGIN, 而CREATE ROLE命令缺省是NOLOGIN。

先进入默认的postgres数据库:


./psql


然后执行:


CREATE USER lin WITH PASSWORD 'LinBug';


创建成功提示如下

 

2) pg封装的命令方式:


./createuser -P lin


这会提示你输入新建用户的密码,重复输入密码后,创建成功

 

5、访问数据库

* 确保在/usr/local/pgsql/bin/目录下,

以默认用户名访问默认数据库(默认的用户名和数据库名都是postgres):


./psql


于是进入PG的交互终端psql

 

以名为lin的角色登录名为mydb的数据库:


./psql mydb -U lin


可以看出,当psql终端的提示符为=#时,表示当前登录的是超级用户,而当提示符为=>时则为普通用户

 

 

6、远程访问数据库设置

* 远程访问数据库的认证方式主要有很多方式,我只设置基于TCP/IP连接的trust认证方式

需设置两个配置文件,

1)修改配置文件postgresql.conf,


vim /usr/local/pgsql/data/postgresql.conf


修改监听地址:


#listen_addresses=’localhost’ #将上面这行改成如下 listen_addresses=’*’


 

2)修改配置文件/pgsql/data/pg_hba.conf:


vim /usr/local/pgsql/data/pg_hba.conf


添加一条IP授权记录(如192.168.2.23),可以对一个网段授权


# 这是在/pgsql/data/pg_hba.conf文件里加 # IPv4 myhost connections: host all all 192.168.2.0/24 trust


当然,可以设置所有网段IP可以访问:


# 这是在/pgsql/data/pg_hba.conf文件里加 # IPv4 remote address connections: host all all 0.0.0.0/0 trust


 

设置完需要重启数据库才能生效。

 

7、Windows图形化工具DBeaver客户端访问PG

* 就像很多公司用PL/SQL Developer、Toad来管理Oracle一样,可以用Dbeaver访问PG

* Dbeaver需要指定jdbc驱动,可到https://jdbc.postgresql.org/download.html#current下载

由于前面设置的是基于TCP/IP的trust认证,所以这里也只要设置如下参数就可:

Host:搭建PG的主机ip地址,这里我把自己的主机IP码掉啦

Port:默认为5432,如果没有特意去配置里改动,这个端口一般都是5432

Database:就是我们前面建立的数据库mydb

User:前面创建的用户名lin

Password:用户名对应的密码LinBug

 

点击“测试链接”,如下表示连接成功。然后再一路点击“next”

 

至此,我们就可以愉快地在本地管理搭建在远程Linux机器上的PostgreSQL数据库啦!