PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS),稳定性比MySQL要强,高并发情况下读写性能好
环境准备:系统 CentOS Linux release 7.5.1804 (Core)
官网地址:https://www.postgresql.org/
安装包准备:wget https://ftp.postgresql.org/pub/source/v12.4/postgresql-12.4.tar.gz
1、解压源码安装包
[root@lb ~]# tar xf postgresql-12.4.tar.gz -C /usr/local/
[root@lb ~]# useradd postgres
[root@lb ~]# echo "123123" |passwd --stdin postgres
[root@lb ~]# ln -s /usr/local/postgresql-12.4/ /usr/local/pgsql/
2、编译安装
#安装必要依赖
[root@lb ~]# yum install -y bison flex readline-devel zlib-devel
[root@lb ~]# yum install docbook-dtds docbook-style-xsl fop libxslt -y
[root@lb ~]# yum install -y gcc
#创建数据目录,配置编译
[root@lb pgsql]# mkdir pgsql/data
[root@lb pgsql]# chown -R postgres.postgres /usr/local/pgsql/
[root@lb ~]# cd /usr/local/pgsql/
[root@lb ~]# ./configure
[root@lb ~]# make && make install
3、初始化数据库
[root@lb pgsql]# su - postgres
[postgres@lb ~]$ /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data/
4、启动数据库
[postgres@lb ~]$ /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data/ -l logfile start
停止数据库
[postgres@lb ~]$ /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data/ stop
重启数据库
[postgres@lb ~]$ /usr/local/pgsql/bin/pg_ctl restart -D /usr/local/pgsql/data/ -m fast
这里-l指定日志文件位置,这里直接输出在家目录下的logfile中,可以自己指定,-D指定数据目录,默认如果不加数据目录直接报错找不到
5、环境变量修改
[postgres@lb ~]$ vi ~/.bash_profile
增加
export PGHOME=/usr/local/pgsql
export PGDATA=/usr/local/pgsql/data
PATH=$PATH:$HOME/bin:$PGHOME/bin
[postgres@lb ~]$ source ~/.bash_profile
6、配置文件修改
[postgres@lb ~]$ cd /usr/local/pgsql/data
[postgres@lb data]$ cp postgresql.conf{,.bak}
[postgres@lb data]$ vim postgresql.conf
修改 listen_addresses 默认localhost
max_connections 连接数 默认100
#######
其他相关内存参数优化这里不做过多配置
添加IP网段授权 /usr/local/pgsql/data/pg_hba.conf
[postgres@lb data]$ vim pg_hba.conf
...
host all all 192.168.53.0/24 trust 指定网段可连接
host all all 0.0.0.0/0 trust 所有网段可连接
7、命令界面简单操作
通过psql命令交互式连接
[postgres@lb data]$ psql -h 127.0.0.1 -U postgres -p 5432
## -d指定连接之后选中的数据库,默认是postgres
命令提示符前面为当前数据库,使用 \l (反斜杠+l)查看当前数据库列表
默认postgres,template0和1这3个库不允许操作
创建新的数据库执行: CREATE DATABASE test WITH OWNER=postgres ENCODING='UTF-8';
\c test 切换当前数据库为test,\d查看当前数据库下所有表
创建表 create table 表名(字段 属性(),.....) \d 表名 查看表结构详细信息
\q 退出交互界面