一、规划工作
操作系统的安装参考我的这个帖子
机器规划如下
ip | 服务器名称 | 作用 | 其他 |
192.168.122.31 | mysql1 | 安装mysql和PostgreSql | 无 |
二、准备安装包
下载安装包 官网地址
如下图所示,点击页面最下方的“file brower”进入下载页
点击如下图所示的“source”,进入选择版本的页面(请自行选择合适的版本号下载即可)
如下图示例中,获取 “PostgreSql-13.2.tar.gz”的路径 ,再到服务器执行“wget wget https://ftp.postgresql.org/pub/source/v13.2/postgresql-13.2.tar.gz”下载即可。至此,安装包准备完毕。
三、安装
因为不能使用CentOs的 root账号 启动PostgreSql。所以在这里,我先创建一个专门的用于用以操作PostgreSql
3.1:解压安装
#创建用户
[root@mysql1 ~]# useradd postgresql
#安装依赖。如果你的服务器已安装过gcc相关内容,这步可忽略
[root@mysql1 ~]# yum install -y perl-ExtUtils-Embed readline-devel zlib-devel pam-devel libxml2-devel libxslt-devel openldap-devel python-devel gcc-c++ openssl-devel cmake gcc* readline-devel
#解压PostgreSql
[root@mysql1 local]# tar -vxf postgresql-13.2.tar.gz
#创建PostgreSql的安装目录(并非解压目录) 及数据目录
[root@mysql1 ~]# mkdir -p /usr/local/postgresql/data
[root@mysql1 ~]# chown -R postgresql:postgresql /usr/local/postgresql
#进入解压目录
[root@mysql1 ~]# cd postgresql-13.2/
#执行configure
[root@mysql1 ~]# ./configure --prefix=/usr/local/postgresql --with-python --with-libxml --with-libxslt
#make并安装(时间可能略长)
[root@mysql1 ~]# make & make install
#安装完毕后,打开profile文件,添加环境变量
[root@mysql1 ~]# vim /etc/profile
#拉到profile文件最下端,将下属内容追加到profile文件最后
export PATH=/usr/local/postgresql/bin:$PATH
export PGHOME=/usr/local/postgresql
export PGDATA=/usr/local/postgresql/data/
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PGHOME/lib/
export PATH=$PGHOME/bin:$PATH:$HOME/bin
3.2:数据库准备
#切换之前新创建的用户,初始化数据库,生成data目录下的配置信息等内容
[root@mysql1 local]# su postgresql
[root@mysql1 local]# /usr/local/postgresql/bin/initdb -D $PGDATA -E UTF8
#进入安装目录
[postgresql@mysql1 data]$ cd /usr/local/postgresql/data
#打开通用配置文件
[postgresql@mysql1 data]$ vim postgresql.conf
#修改允许访问的ip地址
listen_addresses = '*'
#端口
port = 5432
#内存大小。可以使用默认值
max_wal_size = 1GB
min_wal_size = 80MB
#修改网桥配置信息
[postgresql@mysql1 data]$ vim pg_hba.conf
# 在IPv4 local connections:新增如下内容。
# 其中192.168.0.0/16 代表192.168.1.1到192.168.255.255都可以访问
# 如果写成192.168.122.0/24,代表192.168.122.1到192.168.122.255都可以访问
host all all 192.168.0.0/16 md5
#启动PostgreSql
[postgresql@mysql1 data]$ /usr/local/postgresql/bin/pg_ctl -l /usr/local/postgresql/server.log start
#进入数据库(我在这里有问题,请参见第四部分)
[postgresql@mysql1 data]$ psql
3.3:操作数据库
#创建一个超级管理员用户
template1=# CREATE USER superman SUPERUSER;
#创建一个有密码的用户
template1=# CREATE USER darkdragonking WITH PASSWORD 'darkdragonking';
#创建数据库
template1=# CREATE DATABASE dark OWNER darkdragonking ;
3.4:测试连接
四、问题
上面说过,在执行psql报错“psql: error: FATAL: database "postgresql" does not exist”。导致无法登入PostgreSql数据库
网上说有几种方式可以进入。比如借助诸如 Navicat这些工具进入等方法,但我觉得那并非根本解决方法。因为能来看这篇文章的诸位同仁,更多的是像我一样的初学者
估计大家都不知道自己的PostgreSql中有哪些数据库吧。所以登入才是首要大事吧。所以推荐大家按照如下方式解决:即 登入默认的临时数据库。问题解决。
[postgresql@mysql1 bin]$ psql template1