CentOS Yum 工具安装,简单方便,查看了一下官方源版本,需要更新源, 文档中有专门的rpm包列表【https://yum.postgresql.org/repopackages.php】
#1)添加RPM,安装数据库版本包 #yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm 发现postgresql94\95\96\10\11\12版本。
#2)安装 #yum install -y postgresql10-contrib #yum install -y postgresql10-server
#3)初始化 #/usr/pgsql-10/bin/postgresql-10-setup initdb
#4)设置开机自启动 #systemctl enable postgresql-10
#5)启动数据库 #systemctl start postgresql-10
接下来进行一下简单的配置。 PostgreSQL 安装完成后,会建立一下‘postgres’用户,用于执行PostgreSQL, 数据库中也会建立一个’postgres’用户,默认密码为自动生成,需要在系统中改一下。
#su - postgres【切换用户,执行后提示符会变为-bash-4.2$ 】 -bash-4.2$ psql -U postgres【登录数据库,执行后提示符变为 ‘postgres=#’】 postgres=# alter user postgres with password ‘abc123’;【设置postgres用户密码】 postgres-# \q【退出数据库】
#6)配置远程访问 #vi /var/lib/pgsql/10/data/postgresql.conf 若想对所有IP开放,修改#listen_addresses = ‘localhost’ 为 listen_addresses=’*’ 若想仅对部分IP开放,多个IP之间用,(逗号+空格)隔开。 #systemctl restart postgresql-10【更改后重启】
#7)信任远程连接 #vi /var/lib/pgsql/10/data/pg_hba.conf 【修改如下内容,信任指定服务器连接】 【# IPv4 local connections:】 【host all all 127.0.0.1/32 trust】 【host all all 10.211.55.6/32(需要连接的服务器IP) trust】 【另一种方式:】 【host all all 127.0.0.1/32 md5】
local replication all peer host replication all 127.0.0.1/32 ident host replication all ::1/128 ident host all all 0.0.0.0/0 md5
#systemctl restart postgresql-10【更改后重启】
最后一项method解析如下: trust 任何连接都允许,不需要密码 reject 拒绝符合条件(前面几个条件)的请求 MD5 接收一个MD5加密过的密码 password 接收一个密码来登陆,只在可信的网络使用这种方式 gss 使用gssapi认证,只在tcp/ip连接可用 sspi 只在windows可用的一种方式 krb5 不常用,只在TCP/IP可用 ident 使用操作系统用户名认证,验证它是否符合请求的的数据库用户名 ldap 使用LDAP服务器认证 cert 使用ssl客户端认证 pam 使用操作系统的pam模块服务
#8)pgsql常用操作 PostgreSQL安装后会创建一个用户,名为postgres。 (1)输入su - postgres并回车,切换至用户。 (2)输入psql -U postgres并回车,登录数据库。 (3)输入ALTER USER postgres with encrypted password ‘abc123’;(不要漏了“;”) 并回车,设置默认用户postgre的密码,此处密码为abc123,可自行修改。 (4)输入\q并回车, 退出数据库。 (5)输入exit并回车,退出用户。
#9)添加新用户和新数据库 初次安装后,默认生成一个名为postgres的数据库和一个名为postgres的数据库用户。 这里需要注意的是,同时还生成了一个名为postgres的Linux系统用户。
下面使用postgres用户,来生成其他用户和新数据库 #方式)使用PostgreSQL控制台 #adduser dbuser【新建一个Linux新用户,自定义名字即可】 #su - postgres【切换到postgres用户】 -bash-4.2$ psql【使用psql命令登录PostgreSQL控制台】 这时相当于系统用户postgres以同名数据库用户的身份,登录数据库,这是不用输入密码的。 如果一切正常,系统提示符会变为"postgres=#",表示这时已经进入了数据库控制台。 postgres=# \password postgres【使用\password命令,为postgres用户设置一个密码abc123】 postgres=# create user dbuser with password ‘bigdata’;【创建数据库用户dbuser,并设置密码bigdata】 postgres=# create database exampledb owner dbuser;【创建用户数据库exampledb,并指定所有者为dbuser】 【将exampledb数据库的所有权限都赋予dbuser,否则dbuser只能登录控制台,没有任何数据库操作权限。】 postgres=# grant all privileges on database exampledb to dbuser; postgres=# \q【退出控制台,也可以ctrl+D】
#10)登录数据库 #psql -U dbuser -d exampledb -h 192.168.236.129 -p 5432 密码bigdata 上面命令的参数含义如下:-U指定用户,-d指定数据库,-h指定服务器,-p指定端口。 输入上面命令以后,系统会提示输入dbuser用户的密码。输入正确,就可以登录控制台了。