一、安装 PostgresSQL

Centos 7 自带的 PostgresSQL 是 9.2 版的。因为,yum 已经做了国内源,速度飞快,所以直接就用 yum 安装了。依次执行以下命令即可,非常简单。

 sudo yum -y install postgresql-server postgresql
sudo service postgresql initdb
sudo chkconfig postgresql on
sudo systemctl enable postgresql
sudo systemctl start postgresql

如果需要安装最新的版本,那就按官网上的说明来吧,但那个下载速度实在是……

https://www.postgresql.org/download/linux/redhat/

二、控制台 & 基本命令 & 数据库操作

PostgresSQL 默认已经创建了名为 postgres 的超级用户。

执行以下命令,登录控制台

 sudo -u postgres psql postgres

可以试试以下一些常用的控制台命令

(这一部分的内容,基本是照搬阮兄的博文,我把操作逻辑贯通了一些,另做了少量补充,方便实验,原文在此)

# 查看 SQL 命令的解释,比如 \h select
\h # 查看 PostgresSQL 命令列表
\? # 列出所有数据库
\l # 连接(使用)某个数据库
\c [database_name] # 列出当前数据库的所有表格
\d # 列出某一张表格的结构
\d [table_name] # 列出所有用户
\du # 打开文本编辑器
\e # 列出当前数据库和连接的信息
\conninfo # 退出控制台
\q

创建名为 testdb 的数据库(注意:不要忘了命令末尾的分号!)

 CREATE DATABASE testdb;

再用执行 \l,确认数据库已经创建成功了

连接到(使用)testdb 数据库

 \c testdb

查看连接信息,确认已经连接到 testdb 上了

 \conninfo

接下来就是数据库的基本操作了,其实就是各种 SQL 语句,例如:

 # 创建新表(执行后,用 \d 可以看到当前数据库的表格列表中,出现了 user_tb)
CREATE TABLE user_tb(name VARCHAR(), signup_date DATE); # 插入数据
INSERT INTO user_tb(name, signup_date) VALUES('张三', '2017-08-03'); # 选择记录
SELECT * FROM user_tb; # 更新数据
UPDATE user_tb set name = '李四' WHERE name = '张三'; # 删除记录
DELETE FROM user_tb WHERE name = '李四'; # 添加栏位(使用 \d user_tb 查看 SQL 执行前后,表结构的变化)
ALTER TABLE user_tb ADD email VARCHAR(); # 更新结构
ALTER TABLE user_tb ALTER COLUMN signup_date SET NOT NULL; # 更名栏位
ALTER TABLE user_tb RENAME COLUMN signup_date TO signup; # 删除栏位
ALTER TABLE user_tb DROP COLUMN email; # 表格更名
ALTER TABLE user_tb RENAME TO user_dt_new; # 删除表格
DROP TABLE IF EXISTS user_dt_new;

三、创建用户 & 启用密码登录 & shell 命令

真正我们在产品中不会直接使用默认的 postgres 用户,而是自己创建一个用户。

有两种操作方法:

  1. 进入 PostgresSQL 的控制台操作
  2. 使用 PostgresSQL 提供的 shell 命令

第二部分,使用的是控制台操作,这一部分,我们要试试 shell 命令

创建名为 dbuser 的用户并设置密码

 sudo -u postgres createuser dbuser -P

创建名为 mydb 的数据库,并设置其所有者为我们新创建的用户 dbuser

 sudo -u postgres createdb -O dbuser mydb

这时候,如果我们尝试用新创建的用户 dubser 登录数据库 mydb

 psql -U dbuser -d mydb -h localhost

会遇到下面的错误

 psql: FATAL: Ident authentication failed for user "dbuser"

这是因为 PostgresSQL 默认没有启用密码登录,所以我们要先修改配置启用之

打开配置文件

 sudo vim /var/lib/pgsql/data/pg_hba.conf

找到下面这两行

 host    all    all    127.0.0.1/    ident
host all all ::/ ident

将 ident 改为 md5

 host    all    all    127.0.0.1/    md5
host all all ::/ md5

保存配置文件后,PostgresSQL

 sudo systemctl restart postgresql

接下来,我们就可以用新创建的用户 dbuser 愉快地登录数据库啦

 psql -U dbuser -d mydb -h localhost

注意 -h localhost 不能省略,否则 PostgresSQL 还会走 ident 的验证,会出现下面的错误

 psql: FATAL: Peer authentication failed for user "dbuser"

四、允许远程访问(连接)

PostgresSQL 默认是不允许远程访问的,如果我们想要在别的机器上访问数据库,还需要做一些设置。

打开 postgresql.conf 文件

 sudo vim /var/lib/pgsql/data/postgresql.conf

加入下面一行配置,表示允许来自任意 IP 的连接请求

 listen_addresses = '*'

打开 pg_hba.conf 文件

 sudo vim /var/lib/pgsql/data/pg_hba.conf

加入下面一行配置,表示对任意 IP 访问进行密码验证

 host    all    all    0.0.0.0/    md5

最后,重启 PostgreSQL 使配置生效

 sudo systemctl restart postgresql

现在就可以远程访问 PostgreSQL 数据库啦

【原文链接】http://www.ipaomi.com/2017/08/03/centos-7-3-安装配置-postgresql-9-x/

Centos 7.3 安装配置 PostgreSQL 9.x的更多相关文章

  1. CentOS 7.0安装配置Vsftp服务器

    一.配置防火墙,开启FTP服务器需要的端口 CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙. 1.关闭firewall: systemctl stop fi ...

  2. CentOS 6.6安装配置LAMP服务器(Apache+PHP5+MySQL)

    准备篇: CentOS 6.6系统安装配置图解教程 http://www.osyunwei.com/archives/8398.html 1.配置防火墙,开启80端口.3306端口 vi /etc/s ...

  3. CentOS 6.5安装配置LNMP服务器(Nginx+PHP+MySQL)

    CentOS 6.5安装配置LNMP服务器(Nginx+PHP+MySQL) 一.准备篇: /etc/init.d/iptables stop #关闭防火墙 关闭SELINUX vi /etc/sel ...

  4. CentOS 6.4安装配置LAMP服务器(Apache+PHP5+MySQL)

    这篇文章主要介绍了CentOS 6.4安装配置LAMP服务器(Apache+PHP5+MySQL)的方法,需要的朋友可以参考下 文章写的不错,很详细:IDO转载自网络: 准备篇: 1.配置防火墙,开启 ...

  5. centOS下yum安装配置samba

     centOS下yum安装配置samba 2010-03-29 15:46:00 标签:samba yum centOS 安装 休闲 注意:本文的原则是只将文件共享应用于内网服务器,并让将要被共享的目 ...

  6. CentOS 7.0安装配置LAMP服务器(Apache+PHP+MariaDB)

    CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙. 1.关闭firewall: systemctl stop firewalld.service #停止fir ...

  7. CentOS 7.x安装配置

    简述 VMware可以创建多个虚拟机,每个虚拟机上都可以安装各种类型的操作系统.安装方法也有很多种.下面,主要以ISO镜像安装为例,介绍CentOS 7.x的安装过程及相关的参数设置. 简述 创建虚拟 ...

  8. CentOS 6.x安装配置

    简述 VMware可以创建多个虚拟机,每个虚拟机上都可以安装各种类型的操作系统.安装方法也有很多种.下面,主要以ISO镜像安装为例,介绍CentOS 6.x的安装过程及相关的参数设置. 简述 创建虚拟 ...

  9. CentOS 6.3安装配置LAMP服务器(Apache+PHP5+MySQL)

    准备篇: 1.配置防火墙,开启80端口.3306端口 vi /etc/sysconfig/iptables -A INPUT -m state --state NEW -m tcp -p tcp -- ...

随机推荐

  1. 201521123037 《Java程序设计》第3周学习总结

    1. 本周学习总结 链接:http://naotu.baidu.com/file/026a646bb4031d4238accc69cdf53272 2. 书面作业 1. 代码阅读 public cla ...

  2. 201521123032 《Java程序设计》第13周学习总结

    1. 本周学习总结 以你喜欢的方式(思维导图.OneNote或其他)归纳总结多网络相关内容. 2. 书面作业 1. 网络基础 1.1 比较ping www.baidu.com与ping cec.jmu ...

  3. 201521123062《Java程序设计》第10周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 2. 书面作业 1.finally 题目4-2 1.1 截图你的提交结果(出现学号) 1.2 4-2中fin ...

  4. python数据分析panda库

    panda内有两种数据结构,Series()和DataFrame() >>> a=pd.Series([1,2],index=['a','b']) >>> a a ...

  5. 如何在CentOS上安装一个2048小游戏

    如何在centos上安装一个2048小游戏 最近在学习CentOS系统,就琢磨着玩点什么,然后我看到有人在玩2048小游戏,所有我就在想,为啥不装一个2048小游戏搞一下嘞,于是乎,我就开始工作啦 由 ...

  6. VS问题

    ref:https://q.cnblogs.com/q/86096/

  7. ioc(Inversion of Control)控制反转和DI

    ioc意味着将你设计好的交给容器控制,而不是传统在你的对象中直接控制 谁控制了谁:传统的javaSE程序设计,我们直接在对象内部通过new进行创建对象,是程序主动去创建依赖对象:而ioc是有专门一个容 ...

  8. 在JavaScript中使用json.js:使得js数组转为JSON编码

    在json的官网中下载json.js,然后在script中引入,以使用json.js提供的两个关键方法. 1.数组对象.toJSONString() 这个方法将返回一个JSON编码格式的字符串,用来表 ...

  9. es6函数的rest参数和拓展运算符(...)的解析

    es6的新特性对函数的功能新增加了rest参数和...的拓展运算符.这是两个什么东西呢? 先来看一个问题:如何获取一个函数除了定义的参数之外的其他参数?传统的做法是借助函数的arguments关键字来 ...

  10. vue-chat项目之重构与体验优化

    前言 vue-chat 也就是我的几个月之前写的一个基于vue的实时聊天项目,到目前为止已经快满400star了,注册量也已经超过了1700+,消息量达2000+,由于一直在实习,没有时间对它频繁地更 ...