PostgreSQL 安装最新的版本

shell 命令 方式 修改 登录权限

#allow loopback
sed -i 's/\(host  *all  *all  *127.0.0.1\/32  *\)ident/\1md5/' /var/lib/pgsql/9.4/data/pg_hba.conf
sed -i 's/\(host  *all  *all  *::1\/128  *\)ident/\1md5/' /var/lib/pgsql/9.4/data/pg_hba.conf
#add the databases, users and grant permissions to them
sudo -u postgres /usr/pgsql-9.4/bin/psql -d fusionpbx -c "DROP SCHEMA public cascade;";
sudo -u postgres /usr/pgsql-9.4/bin/psql -d fusionpbx -c "CREATE SCHEMA public;";
sudo -u postgres /usr/pgsql-9.4/bin/psql -c "CREATE DATABASE fusionpbx";
sudo -u postgres /usr/pgsql-9.4/bin/psql -c "CREATE DATABASE freeswitch";
sudo -u postgres /usr/pgsql-9.4/bin/psql -c "CREATE ROLE fusionpbx WITH SUPERUSER LOGIN PASSWORD '$password';"
sudo -u postgres /usr/pgsql-9.4/bin/psql -c "CREATE ROLE freeswitch WITH SUPERUSER LOGIN PASSWORD '$password';"
sudo -u postgres /usr/pgsql-9.4/bin/psql -c "GRANT ALL PRIVILEGES ON DATABASE fusionpbx to fusionpbx;"
sudo -u postgres /usr/pgsql-9.4/bin/psql -c "GRANT ALL PRIVILEGES ON DATABASE freeswitch to fusionpbx;"
sudo -u postgres /usr/pgsql-9.4/bin/psql -c "GRANT ALL PRIVILEGES ON DATABASE freeswitch to freeswitch;"

========================= 分界 ===================
. 检查PostgreSQL 是否已经安装
Linux-软件包管理-rpm命令管理-查询

rpm -qa | grep postgres    检查PostgreSQL 是否已经安装
rpm -qal | grep postgres   检查PostgreSQL 安装位置

若已经安装,则使用rpm -e 命令卸载。

rpm -e postgresql94-contrib-9.4.4-1PGDG.rhel6.x86_64 postgresql94-server-9.4.4-1PGDG.rhel6.x86_64  卸载
rpm -e postgresql94-libs-9.4.4-1PGDG.rhel6.x86_64 postgresql94-9.4.4-1PGDG.rhel6.x86_64  卸载

可以使用rpm -qa | grep postgres再次查看是否还有Postgres安装文件,没有卸载完成
2.使用yum库设置安装postgresql94版本,最好先创建用户组和用户:
(1)新增postgres用户组:

groupadd postgres

(2)新增postgres用户并且设置这个用户属于上面创建的postgres用户组:

useradd -g postgres postgres

(3)修改postgres用户密码:passwd postgres(这里设置密码为postgres)

passwd postgres  --修改postgres用户密码

安装成功 可以使用rpm -qal|grep postgres这个命令查看安装文件的位置,注意默认的postgresql配置文件的位置和名称(带有版本号)
查看/etc/rc.d/init.d/postgresql-9.4文件中的PGDATA信息,并显示行号。

cat /etc/rc.d/init.d/postgresql-9.4 | grep -n PGDATA -n显示行号

上图说明默认数据库文件的安装位置是在:/var/lib/pgsql/9.4/data,如果需要改变数据库文件的存放位置可以修改这里,下面会介绍如何修改默认数据库文件的存放位置。先看看这个目录里面有没有数据库的文件:

ls -la /var/lib/pgsql/9.4/data 查看这个目录里面的内容

上图说明postgresql安装完成之后,默认数据库文件存放所使用的目录是空的。
在这里插入图片描述
创建数据库文件存放的目录:/mnt/pgsql/data

mkdir -p /mnt/pgsql/data 递归方式创建pgsql/data目录

默认刚建立的目录/mnt/pgsql和/mnt/pgsql/data的所有者和所有组都是root,需要修改为postgres用户和用户组。

chown -R postgres:postgres /mnt/pgsql
ll /mnt
chown -R postgres:postgres /mnt/pgsql/data
ll /mnt/pgsql

查看是否已经更改为postgres用户和用户组了。
接下来就是要修改默认数据库文件存放路径了:

修改postgresql数据库的配置文件(/etc/rc.d/init.d/postgresql-9.4)中的PGDATA和PGLOG改成我们自己创建的目录:/mnt/pgsql:

PGDATA=/mnt/pgsql/data
PGLOG=/mnt/pgsql/pgstartup.log

保存之后,继续查询initdb文件的存放位置:

find / -name initdb 查找initdb 的安装位置

在这里插入图片描述
指定数据库存放位置和编码方式,初始化数据库:

/usr/pgsql-9.4/bin/initdb -E UNICODE -D /mnt/pgsql/data

在这里插入图片描述
注意: 出现上面的错误说明Postgresql不能以root身份初始化,要以postgres用户的身份运行,所以上面要创建linux用户postgres和组postgres。

切换postgres用户执行初始化数据库操作

su - postgres  切换用户
/usr/pgsql-9.4/bin/initdb -E UNICODE -D /mnt/pgsql/data --初始化数据库
cd /mnt/pgsql/data 切换目录
ll 查询初始化数据库成功之后的目录内容

PostgreSQL 安装最新的版本_第1张图片
编辑postgresql.conf文件,修改数据库默认接收的监听地址与端口参数:

cat postgresql.conf | grep -n listen_addresses  查找listen_addresses在postgresql.conf文件中的位置并显示行号
vi postgresql.conf 编辑postgresql.conf文件

查询listen_addresses的值:
在这里插入图片描述
修改前listen_addresses的值:
PostgreSQL 安装最新的版本_第2张图片
去掉59行的注释,将listen_addresses = ‘localhost’ 改成 listen_addresses = ‘*’,下图是修改后listen_addresses的值:
PostgreSQL 安装最新的版本_第3张图片
接下来继续修改pg_hba.conf文件,告诉数据库服务器它将允许什么样的客户端连接到自己:

vi pg_hba.conf --修改postgresql服务连接文件

PostgreSQL 安装最新的版本_第4张图片
在86行下面增加一行,表示允许任何一个客户端使用正确的用户名和密码访问自己:

host    all             all             0.0.0.0/0               trust

PostgreSQL 安装最新的版本_第5张图片

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     trust或peer
# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
host    all             all             0.0.0.0/0               password
# IPv6 local connections:
host    all             all             ::1/128                 password
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local   replication     postgres                                peer
#host    replication     postgres        127.0.0.1/32            ident
#host    replication     postgres        ::1/128                 ident

备注:设置 trust,本地可以使用psql -U postgres直接登录服务器;设置 peer,本地可以使用psql -h 127.0.0.1 -d postgres -U postgres直接登录服务器;

exit --返回root用户
chkconfig --list 查看所有服务并找到postgre的服务名称

PostgreSQL 安装最新的版本_第6张图片
默认postgresql-9.4不是自启动的,我们需要设置postgresql-9.4服务为自启动服务:

chkconfig postgresql-9.4 on  设置服务自启动
chkconfig --list

有三种方式可以查看postgresql运行是否运行

ps -ef | grep postgres  查postgres的进程信息
netstat -tpnl | grep 5432   查postgres的端口号5432是否已经打开
service postgresql-9.4 status 查看服务状态

开始连接postgresql数据库:

psql -U postgres //连接pgsql server
psql -h 127.0.0.1 -d postgres -U postgres //连接pgsql server

修改配置文件pg_hba.conf之后,登录数据库重新刷新更新后的配置命令:

select pg_reload_conf();
show data_directory;

为数据库默认的登陆名postgres(等同于SQLServer里面的sa)设置登陆数据库的密码:

ALTER USER postgres WITH PASSWORD '1234'; //添加密码
select * from pg_shadow;
\q回车 退出登录

=============================== 分界 =====================================
修改/var/lib/pgsql/9.4/data/postgresql.conf(这个文件是默认的安装位置)

vi /var/lib/pgsql/9.4/data/postgresql.conf 修改postgresql的配置文件

PostgreSQL 安装最新的版本_第7张图片
第80行:peer改称md5,本地就可以连接自己了。

在82行下面增加一行

host    all             all             192.168.6.0/24          md5  允许192.168.0.0网段连接
host    all         all        0.0.0.0/0         md5  允许所有IP连接

PostgreSQL 安装最新的版本_第8张图片

============================ 分界=======================================
原文

1,官网下载地址 点击download 这个比较好,根据选择的版本,给出具体的命令
https://www.postgresql.org/download/linux/redhat/

2,3. 选择版本类型

根据实际情况选择你的目标主机类型,我的是Centos,所以选择Red Hat.
PostgreSQL 安装最新的版本_第9张图片
4. 选择系统配置

选择后会生成对象人rpm文件地址。
PostgreSQL 安装最新的版本_第10张图片
5. 安装rpm

复制rpm命令,在系统下执行,保证主机有联网。提示输入: y

yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm -y  # 已使用
  1. 安装postgresql

安装客户端:

yum install postgresql10

安装服务器端:

yum install postgresql10-server
7. 启动postgresql

初始化启动数据库
/usr/pgsql-10/bin/postgresql-10-setup initdb

初始化成功后:数据库目录在:/var/lib/pgsql/10, data目录

drwx------ 5 postgres postgres 4096 Jul 30 15:52 base 
-rw------- 1 postgres postgres 30 Jul 30 15:55 current_logfiles 
drwx------ 2 postgres postgres 4096 Jul 30 16:02 global 
drwx------ 2 postgres postgres 4096 Jul 30 15:55 log 
drwx------ 2 postgres postgres 4096 Jul 30 15:52 pg_commit_ts 
drwx------ 2 postgres postgres 4096 Jul 30 15:52 pg_dynshmem 
-rw------- 1 postgres postgres 4269 Jul 30 15:52 pg_hba.conf 
-rw------- 1 postgres postgres 1636 Jul 30 15:52 pg_ident.conf 
drwx------ 4 postgres postgres 4096 Jul 30 17:10 pg_logical 
drwx------ 4 postgres postgres 4096 Jul 30 15:52 pg_multixact 
drwx------ 2 postgres postgres 4096 Jul 30 15:55 pg_notify 
drwx------ 2 postgres postgres 4096 Jul 30 15:52 pg_replslot 
drwx------ 2 postgres postgres 4096 Jul 30 15:52 pg_serial 
drwx------ 2 postgres postgres 4096 Jul 30 15:52 pg_snapshots 
drwx------ 2 postgres postgres 4096 Jul 30 15:52 pg_stat 
drwx------ 2 postgres postgres 4096 Jul 30 17:15 pg_stat_tmp 
drwx------ 2 postgres postgres 4096 Jul 30 15:52 pg_subtrans 
drwx------ 2 postgres postgres 4096 Jul 30 15:52 pg_tblspc 
drwx------ 2 postgres postgres 4096 Jul 30 15:52 pg_twophase 
-rw------- 1 postgres postgres 3 Jul 30 15:52 PG_VERSION 
drwx------ 3 postgres postgres 4096 Jul 30 15:52 pg_wal 
drwx------ 2 postgres postgres 4096 Jul 30 15:52 pg_xact 
-rw------- 1 postgres postgres 88 Jul 30 15:52 postgresql.auto.conf 
-rw------- 1 postgres postgres 22761 Jul 30 15:52 postgresql.conf
 -rw------- 1 postgres postgres 58 Jul 30 15:55 postmaster.opts 
 -rw------- 1 postgres postgres 103 Jul 30 15:55 postmaster.pid

设置自动启动配置: 启动服务器:查看运行状态:

systemctl enable postgresql-10
systemctl start postgresql-10

查看进程:

ps -ef|grep postgres

你可能感兴趣的:(PostgreSQL 安装最新的版本)