# PostgreSQL ## 下载 官网地址:[https://www.postgresql.org/](https://www.postgresql.org/) 下载地页面:[https://www.postgresql.org/download/linux/redhat/](https://www.postgresql.org/download/linux/redhat/) ## 在线安装 使用yum命令添加PostgreSQL软件源。 ``` [root@localhost ~] yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm ``` 使用yum命令安装PostgreSQL。 ``` [root@localhost ~] yum install postgresql12 [root@localhost ~] yum install postgresql12-server [root@localhost ~] yum install postgresql12-contrib ``` 初始化数据库。 ``` [root@localhost ~] /usr/pgsql-12/bin/postgresql-12-setup initdb ``` 配置开机启动与启动 ``` [root@localhost ~] systemctl enable postgresql-12 [root@localhost ~] systemctl start postgresql-12 ``` ## 配置远程访问 ### 修改密码 首先,切换到postgres用户。然后执行修改用户密码SQL语句。其中“postgres”为要修改密码的用户,“123456”为用户的密码。 ``` [root@localhost ~] su - postgres -bash-4.2$ psql postgres=# alter user postgres with password '123456'; postgres-# \q * 注意设置密码后面的分号不可以忽略 ``` ### 修改配置文件 打开并编辑文件“/var/lib/pgsql/12/data/postgresql.conf”。将“#listen_addresses = 'localhost'”改为“listen_addresses = '*'” ![PostgreSQL远程连接配置](./img/postgresql_001.png) 打开并编辑文件“/var/lib/pgsql/12/data/pg_hba.conf”。在文件的末尾添加“host all all 0.0.0.0/0 md5”。 ![PostgreSQL远程连接配置](./img/postgresql_002.png) ### 安装Python3支持包 如果不需要数据库Python3支持,则忽略该步骤。 ``` [root@localhost ~] yum install postgresql12-plpython3 ``` 要使用python扩展,需要打开数据库,执行如下SQL语句。 ``` sql CREATE extension plpython3u; ``` ## 离线安装 在有网的CentOS机器上新建一个文件夹 使用yum把rpm 的安装包下载到 新建文件夹 ``` mkdir pg12_rpm_packs ``` 设置软件源 ``` [root@localhost ~] yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm ``` 下载pg server/client,contrib和其依赖的其他包,暂不安装: ``` yum install --downloadonly --downloaddir=./pg12_rpm_packs postgresql12-server postgresql12 postgresql12-contrib ``` 下载后的rpm 包 ![requirements.txt](./img/pg_0001.png) 压缩pg12_rpm_packs 文件夹 ``` tar -czvf pg12_rpm_packs.tar.gz pg12_rpm_packs ``` 导出至离线的centos 服务器并解压 ``` tar -xzvf pg12_rpm_packs.tar.gz ``` cd pg12_rpm_packs 进入文件夹 使用 rpm -ivh 进行rpm包安装 安装顺序如下 ``` rpm -ivh postgresql12-libs-12.3-1PGDG.rhel7.x86_64.rpm rpm -ivh postgresql12-12.3-1PGDG.rhel7.x86_64.rpm rpm -ivh postgresql12-server-12.3-1PGDG.rhel7.x86_64.rpm rpm -ivh postgresql12-contrib-12.3-1PGDG.rhel7.x86_64.rpm ``` 安装成功事例图 安装顺序错乱会看到提示需要先安装哪个依赖 ![requirements.txt](./img/pg_0002.png) ###初始化数据库 配置请参考在线安装,操作是一样的 ### 安装离线Python3支持包 在有网的服务器上指定文件下载 ``` yum install --downloadonly --downloaddir=./pg12_rpm_packs postgresql12-plpython3 ``` ![requirements.txt](./img/pg_003.png) 主要安装的是 libtirpc-0.2.4-0.16.el7.x86_64 和 python3-libs-3.6.8-13.el7.x86_64 先安装 python3-libs ``` rpm -ivh python3-libs-3.6.8-13.el7.x86_64.rpm --force --nodeps ``` 注意后面的 --force --nodeps 没有会安装失败 然后安装 libtirpc-0.2.4-0.16.el7.x86_64 注意这个要执行两边否则会缺少依赖包 ``` rpm -ivh libtirpc-0.2.4-0.16.el7.x86_64 .rpm ``` 然后执行安装 postgresql12-plpython3-12.3-1PGDG.rhel7.x86_64.rpm ``` rpm -ivh postgresql12-plpython3-12.3-1PGDG.rhel7.x86_64.rpm ``` 打开数据库 输入扩展SQL ``` CREATE extension plpython3u; ```