1.6.1 分配存储
格式化磁盘vdb:mkfs –t ext4 /dev/vdb
新建文件夹:mkdir /data
挂载磁盘到/data:mount /dev/vdb /data
新建文件夹/data/pg_data:mkdir /data/pg_data
1.6.2 安装postgresql yum源
### 安装postgresql10
yum install -y https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-2.noarch.rpm
### 安装最新版postgresql ,把剩余步骤里的版本号为10的都改成最新版本号(目前是12)
yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
或者
yum install https://download.postgresql.org/pub/repos/yum/12/redhat/rhel-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
1.6.3 安装postgresql客户端
yum -y install postgresql10
1.6.4 安装postgresql服务端
yum install -y postgresql10-server
1.6.4 配置postgresql环境变量
编辑配置文件:vim /etc/profile 追加以下内容
export PATH=/usr/pgsql-10/bin:$PATH
###export LD_LIBRARY_PATH=/usr/pgsql-10/lib:$LD_LIBRARY_PATH(方法1)
###export PGDATA=/data/pg_data(方法1)
使配置文件生效:source /etc/profile
编辑启动服务配置文件: /usr/lib/systemd/system/postgresql-10.service 追加以下内容(方法2)
Environment = PGDATA=/data/pg_data
1.6.5 文件夹权限调整
修改/data/pg_data属性:chown postgres:postgres /data/pg_data(方法2)
###修改/data权限:chmod -R 777 /data(方法1)
###修改/data/pg_data权限:chmod 700 /data/pg_data(方法1)
1.6.6 初始化数据仓库
###切换用户:su postgres(方法1)
###初始化数据仓库:pg_ctl init(方法1)
初始化数据仓库:postgresql-10-setup initdb(方法2) 如果报日志文件找不到,根据提示目录新建一个日志文件,或者修改postgresql-10-setup 脚本重新指定日志文件路径
加入系统启动项:systemctl enable postgresql-10(方法2)
1.6.7 修改数据库配置
编辑基础配置文件:postgresql.conf:
vim /data/pg_data/postgresql.conf
分别查找data_directory、port、listen_address:
/port、/listen_address
修改后结果:
port = 3343
listen_address=’*’
编辑网络限制配置文件pg_hba.conf:
vim /data/pg_data/pg_hba.conf
IPv4 local connections添加以下内容
host all all 0.0.0.0/0 trust/md5
replication privilege添加以下内容
host replication all 0.0.0.0/0 trust/md5
1.6.8 启动/关闭/重启数据库
###启动数据:pg_ctl start(方法1)
###关闭数据库:pg_ctl stop(方法1)
###重启数据库:pg_ctl restart(方法1)
systemctl start/stop/restart/ postgresql-10(方法2)
修改管理员密码:
su postgres
psql -p port
alter user postgres with password 'postgres';
标注方法1的是以pg_ctl命令启动pgsql的,需要切换到postgres用户下执行
标注方法2的是以postmaster命令启动pgsql。方便设置为系统启动项,不需要用postgres用户执行