rpm安装PostgreSQL
安装PostgreSQL
进入https://www.postgresql.org/download/linux/选择对应的操作系统,即可获取rpm安装的操作步骤
# 安装rpm源
$ yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
# 安装数据库
$ yum install -y postgresql12-server
# 保存安装包
$ yum install postgresql12-server --downloadonly --downloaddir=.
# 进入安装目录
$ cd /usr/pgsql-12/
$ ls
bin lib share
初始化数据库实例
$ /usr/pgsql-12/bin/postgresql-12-setup initdb
# 设置postgresql自启动
$ systemctl enable postgresql-12.service
# 启动postgresql服务
$ systemctl start postgresql-12.service
# 查看postgresql服务状态
$ systemctl status postgresql-12.service
# 停止postgresql服务
$ systemctl stop postgresql-12.service
用数据库指令管理数据库
# 切换用户
$ su - postgres
# 查看pg_ctl帮助
-bash-4.2$ /usr/pgsql-12/bin/pg_ctl --help
# 关闭数据库服务
# smart模式类似于oracle的normal模式,不再接受新的连接;等原有的连接关闭后,再关闭数据库服务
# fast模式不接受新的连接,并回滚原有连接的事务后断开所有连接,保持一致性状态,为默认停止方式
# immediate不等待事务的回滚,直接关闭数据库服务
-bash-4.2$ /usr/pgsql-12/bin/pg_ctl stop -m smart|fast|immediate
# 开启数据库服务
-bash-4.2$ /usr/pgsql-12/bin/pg_ctl start
修改配置及客户端连接
vim /var/lib/pgsql/12/data/postgresql.conf
# 监听所有ip地址
listen_addresses = '0.0.0.0'
vim /var/lib/pgsql/12/data/pg_hba.conf
# 允许所有ip以密码的方式访问数据库
host all all 0.0.0.0/0 md5
psql指令的使用
# 查看数据库信息
$ /usr/pgsql-12/bin/psql -l
# 连接postgres数据库。本地连接不需要账号密码
$ /usr/pgsql-12/bin/psql -dpostgres
# 查看当前数据库下的schema
postgres=# \dn
# 查看有哪些数据库及数据库信息
postgres=# \l
# 查看当前schema下有哪些表
postgres=# \dt
# 修改用户密码
postgres=# alter user postgres with password '123456';
PostgreSQL推荐连接工具
- psql
- pgadmin
- navicat
如果上述工具无法连接,请关闭防火墙。
新建一个服务实例
# 拷贝并修改service文件中的PGDATA路径
$ cp /usr/lib/systemd/system/postgresql-12.service /usr/lib/systemd/system/pg.service
Environment=PGDATA=/var/lib/pgsql/12/data2/
# 初始化数据库,并修改数据库端口
$ /usr/pgsql-12/bin/postgresql-12-setup initdb pg
# 修改postgresql.conf文件,更改端口
$ cd /var/lib/pgsql/12/data2/
$ vi postgresql.conf
port=15432
# systemctl start pg
源码编译安装PostgreSQL
# 创建postgresql用户
$ useradd postgres
# 创建安装目录,并授权
$ mkdir /home/pg12/data -p
$ chown -R postgres:postgres /home/pg12/
# 下载postgresql源码
$ wget https://ftp.postgresql.org/pub/source/v12.2/postgresql-12.2.tar.gz
# 解压源码
$ tar zxvf postgresql-12.2.tar.gz
# 安装依赖
# yum install -y openssl openssl-devel pam pam-devel libxml2 libxml2-devel libxslt \
libxslt-devel perl perl-devl python-devel perl-ExtUtils-Embed readline readline-devel \
zlib zlib-devel gettext gettext-devel biso flex uuid-devel gcc gcc-c++
# 编译安装
# 授权
$ chown -R postgres:postgres postgresql-12.2/
$ su postgres
$ ./configure --prefix /home/pg12/ --with-pgport=15432 --with-openssl \
--with-perl --with-python --with-blocksize=16
$ make world && make install-world
设置环境变量
$ vi ~/.bashrc
export PGHOME=/home/pg12
export PGPORT=15432
export PGDATA=/home/pg12/data
export LD_LIBRARY_PATH=$PGHOME/liib:$LD_LIBRARY_PATH
export PATH=$PGHOME/bin:$PATH:/
$ source ~/.bashrc