(CentOS 7) PostgreSQL安装与配置

一、安装相关配置软件

[root@www1 ~]# yum install -y gcc.x86_64 glibc.x86_64 glibc-devel.x86_64 vim-enhanced.x86_64 gcc-java apr apr-devel openssl openssl-devel libgcc.x86_64 java-1.8.0-openjdk.x86_64 java-1.8.0-openjdk-devel.x86_64 perl-Module-Install.noarch

[root@www1 ~]# yum install -y readline-devel.x86_64

2、下载软件包

2.1.postgresql官网下载最新的源码:

https://ftp.postgresql.org/pub/source/

2.2.下载uuid ossp库

ftp.ossp.org/pkg/lib/uuid/

3、创建postgres用户

[root@www1 ~]# useradd postgres

4、上传源码包并解压编译安装

4.1.解压、编译、安装uuid

[root@www1 /]# tar -zxf uuid-1.6.2.tar.gz

[root@www1 /]# cd uuid-1.6.2

[root@www1 uuid-1.6.2]# ./configure

[root@www1 uuid-1.6.2]# make && make install

4.2.解压postgresql

[root@www1 /]# tar -zxf postgresql-12.0.tar.gz

[root@www1 /]# cd postgresql-12.0

5、配置prefix存储位置

[root@www1 postgresql-12.0]# ./configure --prefix=/home/postgres --enable-thread-safety --with-uuid=ossp --with-libs=/usr/local/lib --with-includes=/usr/local/include

6、编译&安装

[root@www1 postgresql-12.0]# make && make install

[root@www1 postgresql-12.0]# cd contrib/

[root@www1 contrib]# make && make install

7、配置uuid的软链接

[root@www1 contrib]# find / -name libuuid.so.16

/usr/local/lib/libuuid.so.16

/home/postgres/lib/libuuid.so.16

/uuid-1.6.2/.libs/libuuid.so.16

[root@www1 contrib]# ln -s /usr/local/lib/libuuid.so.16 /home/postgres/lib

8、设置用户权限

[root@www1 contrib]# chown -R postgres.postgres /home/postgres/

9、切换到创建的用户下配置环境变量

编辑用户目录下.bashrc文件 主要是设置PGDATA变量

[root@www1 /]# su - postgres

[postgres@www1 ~]$ vim .bashrc

PGHOME=/home/postgres

export PGHOME

PGDATA=$PGHOME/data

export PGDATA

PATH=$PATH:$HOME/.local/bin:$HOME/bin:$PGHOME/bin

export PATH

10、重新启用配置文件

[postgres@www1 ~]$ source .bashrc

11、初始化数据库

[postgres@www1 ~]$ initdb -D $PGDATA

12、启动数据库

[postgres@www1 ~]$ pg_ctl start -D $PGDATA

13、设置用户密码

[postgres@www1 ~]$ psql -U postgres

psql (12.0)

Type "help" for help.

postgres=# \password

Enter new password:

Enter it again:

postgres=# \q  #使用\q命令退出控制台

14、设置监听端口

[postgres@www1 ~]$ vim $PGDATA/pg_hba.conf

85 # IPv4 local connections:

86 host    all             all             0.0.0.0/0            trust

[postgres@www1 ~]$ vim $PGDATA/postgresql.conf

# - Connection Settings -

listen_addresses = '*'                                             

port = 5432

15、重启pg服务生效

[postgres@www1 ~]$  pg_ctl restart -D $PGDATA

16、登录数据库以及基本使用(需要指定的用户才能够进行数据库的管理)

[postgres@www1 ~]$ psql -U postgres -h 127.0.0.1 -p 5432

psql (12.0)

Type "help" for help.

postgres=#

-U指:用户 -d指:数据库 -h指:服务器 -p指:端口

17、若当前已经切换到指定的数据库用户直接使用psql登录

[postgres@www1 ~]$ psql

psql (12.0)

Type "help" for help

postgres=#

常用命令详情:

\h:查看SQL命令的解释 比如\h select

\?:查看psql命令列表

\l:列出所有数据库

\c [database_name]:连接其他数据库

\d:列出当前数据库的所有表格

\d [table_name]:列出某一张表格的结构

\du:列出所有用户

\e:打开文本编辑器

\conninfo:列出当前数据库和连接的信息

18、创建数据库

postgres=# create database demo;

CREATE DATABASE

19、查看创建的数据库

postgres-# \l

                                  List of databases

   Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges   

-----------+----------+----------+-------------+-------------+-----------------------

 demo      | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |

 postgres  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |

 template0 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +

           |          |          |             |             | postgres=CTc/postgres

 template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +

           |          |          |             |             | postgres=CTc/postgres

(4 rows)

20、使用创建的数据库

postgres-#  \c demo

You are now connected to database "demo" as user "postgres"

21、删除数据库

[postgres@www1 ~]$ dropdb demo

[postgres@www1 ~]$ psql -l

                                  List of databases

   Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges   

-----------+----------+----------+-------------+-------------+-----------------------

 postgres  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |

 template0 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +

           |          |          |             |             | postgres=CTc/postgres

 template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +

           |          |          |             |             | postgres=CTc/postgres

(3 rows)

22、创建测试表

postgres=# create table test_table (no int,name text);

CREATE TABLE

23、显示创建的测试表

postgres=# \dt

           List of relations

 Schema |    Name    | Type  |  Owner   

--------+------------+-------+----------

 public | test_table | table | postgres

(1 row)

24、插入数据到测试表

postgres=# insert into test_table (no,name) values (01,'CentOS');

INSERT 0 1

25、确认数据是否插入表

postgres=# select * from test_table;

 no |  name  

----+--------

  1 | CentOS

(1 row)

26、删除测试表

postgres=# drop table test_table;

DROP TABLE

postgres=# \dt

Did not find any relations.

ps:postgres用户切换回root用户不成功的解决方法

1.编辑/etc/sudoers文件

[root@www1 ~]# vim /etc/sudoers

2.添加提升权限的用户信息

 91 ## Allow root to run any commands anywhere

 92 root     ALL=(ALL)      ALL

 93 postgres  ALL=(ALL)      ALL

3.切换回普通用户测试

[root@www1 ~]# su postgres

[postgres@www1 root]$ sudo su root

[sudo] postgres 的密码:

[root@www1 ~]#

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值