ubuntu下安装postgres
PostgreSQL 是一款强大的,开源的,对象关系型数据库系统。它支持所有的主流操作系统,包括 Linux、Unix(AIX、BSD、HP-UX,SGI IRIX、Mac OS、Solaris、Tru64) 以及 Windows 操作系统。
下面是 Ubuntu 发起者 Mark Shuttleworth 对 PostgreSQL 的一段评价。
PostgreSQL 是一款极赞的数据库系统。刚开始我们在 Launchpad 上使用它的时候,并不确定它能否胜任工作。但我是错了。它很强壮、快速,在各个方面都很专业。
— Mark Shuttleworth.
在这篇简短的指南中,让我们来看看如何在 Ubuntu 15.10 服务器中安装 PostgreSQL 9.4。
安装 PostgreSQL
默认仓库中就有可用的 PostgreSQL。在终端中输入下面的命令安装它。
sudo apt-get install postgresql postgresql-contrib
如果你需要其它的版本,按照下面那样先添加 PostgreSQL 仓库然后再安装。
PostgreSQL apt 仓库 支持 amd64 和 i386 架构的 Ubuntu 长期支持版(10.04、12.04 和 14.04),以及非长期支持版(14.10)。对于其它非长期支持版,该软件包虽然没有完全支持,但使用和 LTS 版本近似的也能正常工作。
Ubuntu 14.10 系统:
新建文件/etc/apt/sources.list.d/pgdg.list;
sudo vi /etc/apt/sources.list.d/pgdg.list
用下面一行添加仓库:
deb http://apt.postgresql.org/pub/repos/apt/ utopic-pgdg main
注意: 上面的库只能用于 Ubuntu 14.10。还没有升级到 Ubuntu 15.04 和 15.10。
对于 Ubuntu 14.04,添加下面一行:
deb http://apt.postgresql.org/pub/repos/apt/ trusty-pgdg main
对于 Ubuntu 12.04,添加下面一行:
deb http://apt.postgresql.org/pub/repos/apt/ precise-pgdg main
导入库签名密钥:
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
更新软件包列表:
sudo apt-get update
然后安装需要的版本。
sudo apt-get install postgresql-9.4
访问 PostgreSQL 命令窗口
默认的数据库名称和数据库用户名称都是 “postgres”。切换到 postgres 用户进行 postgresql 相关的操作:
sudo -u postgres psql postgres
示例输出:
psql (9.4.5)Type "help" for help.postgres=#
要退出 postgresql 窗口,在 psql 窗口输入 \q 退出到终端。
设置 “postgres” 用户密码
登录到 postgresql 窗口,
sudo -u postgres psql postgres
用下面的命令为用户 postgres 设置密码:
postgres=# \password postgresEnter new password:Enter it again:postgres=# \q
要安装 PostgreSQL Adminpack 扩展,在 postgresql 窗口输入下面的命令:
sudo -u postgres psql postgres
postgres=# CREATE EXTENSION adminpack;CREATE EXTENSION
在 psql 窗口输入 \q 从 postgresql 窗口退回到终端。
创建新用户和数据库
例如,让我们创建一个新的用户,名为 “senthil”,密码是 “ubuntu”,以及名为 “mydb” 的数据库。
sudo -u postgres createuser -D -A -P senthil
sudo -u postgres createdb -O senthil mydb
删除用户和数据库
要删除数据库,首先切换到 postgres 用户:
sudo -u postgres psql postgres
输入命令:
$ drop database <database-name>
要删除一个用户,输入下面的命令:
$ drop user <user-name>
配置 PostgreSQL-MD5 验证
MD5 验证 要求用户提供一个 MD5 加密的密码用于认证。首先编辑 /etc/postgresql/9.4/main/pg_hba.conf 文件:
sudo vi /etc/postgresql/9.4/main/pg_hba.conf
按照下面所示添加或修改行
[...]# TYPE DATABASE USER ADDRESS METHOD# "local" is for Unix domain socket connections onlylocal all all md5# IPv4 local connections:host all all 127.0.0.1/32 md5host all all 192.168.1.0/24 md5# IPv6 local connections:host all all ::1/128 md5[...]
其中, 192.168.1.0/24 是我的本地网络 IP 地址。用你自己的地址替换。
重启 postgresql 服务以使更改生效:
sudo systemctl restart postgresql
或者,
sudo service postgresql restart
配置 PostgreSQL TCP/IP 配置
默认情况下,没有启用 TCP/IP 连接,因此其它计算机的用户不能访问 postgresql。为了允许其它计算机的用户访问,编辑文件/etc/postgresql/9.4/main/postgresql.conf:
sudo vi /etc/postgresql/9.4/main/postgresql.conf
找到下面一行:
[...]#listen_addresses = 'localhost'[...]#port = 5432[...]
取消该行的注释,然后设置你 postgresql 服务器的 IP 地址,或者设置为 ‘*’ 监听所有用户。你应该谨慎设置所有远程用户都可以访问 PostgreSQL。
[...]listen_addresses = '*'[...]port = 5432[...]
重启 postgresql 服务保存更改:
sudo systemctl restart postgresql
或者,
sudo service postgresql restart
用 phpPgAdmin 管理 PostgreSQL
phpPgAdmin 是基于 web 用 PHP 写的 PostgreSQL 管理工具。
默认仓库中有可用的 phpPgAdmin。用下面的命令安装 phpPgAdmin:
sudo apt-get install phppgadmin
默认情况下,你可以在本地系统的 web 浏览器用 http://localhost/phppgadmin 访问 phppgadmin。
要访问远程系统,在 Ubuntu 15.10 上做如下操作:
编辑文件 /etc/apache2/conf-available/phppgadmin.conf,
sudo vi /etc/apache2/conf-available/phppgadmin.conf
找到 Require local 的一行在这行前面添加 # 注释掉它。
#Require local
添加下面的一行:
allow from all
保存并退出文件。
然后重启 apache 服务。
sudo systemctl restart apache2
对于 Ubuntu 14.10 及之前版本:
编辑 /etc/apache2/conf.d/phppgadmin:
sudo nano /etc/apache2/conf.d/phppgadmin
注释掉下面一行:
[...]#allow from 127.0.0.0/255.0.0.0 ::1/128
取消下面一行的注释使所有系统都可以访问 phppgadmin。
allow from all
编辑 /etc/apache2/apache2.conf:
sudo vi /etc/apache2/apache2.conf
添加下面一行:
Include /etc/apache2/conf.d/phppgadmin
然后重启 apache 服务。
sudo service apache2 restart
配置 phpPgAdmin
编辑文件 /etc/phppgadmin/config.inc.php, 做以下更改。下面大部分选项都带有解释。认真阅读以便了解为什么要更改这些值。
sudo nano /etc/phppgadmin/config.inc.php
找到下面一行:
$conf['servers'][0]['host'] = '';
按照下面这样更改:
$conf['servers'][0]['host'] = 'localhost';
找到这一行:
$conf['extra_login_security'] = true;
更改值为 false。
$conf['extra_login_security'] = false;
找到这一行:
$conf['owned_only'] = false;
更改值为 true。
$conf['owned_only'] = true;
保存并关闭文件。重启 postgresql 服务和 Apache 服务。
sudo systemctl restart postgresqlsudo systemctl restart apache2
或者,
sudo service postgresql restartsudo service apache2 restart
现在打开你的浏览器并导航到 http://ip-address/phppgadmin。你会看到以下截图。

phpPgAdmin
用你之前创建的用户登录。我之前已经创建了一个名为 “senthil” 的用户,密码是 “ubuntu”,因此我以 “senthil” 用户登录。

phpPgAdmin
然后你就可以访问 phppgadmin 面板了。

phpPgAdmin
用 postgres 用户登录:

phpPgAdmin
就是这样。现在你可以用 phppgadmin 可视化创建、删除或者更改数据库了。
加油!
ubuntu下安装postgres的更多相关文章
- 在Ubuntu下安装ovs-dpdk
在Ubuntu下安装ovs-dpdk 参考资料:https://software.intel.com/zh-cn/articles/using-open-vswitch-with-dpdk-on-ub ...
- Ubuntu 下安装QT
Ubuntu 下安装QT 本文使用的环境 QT Library: qt-everywhere-opensource-src-4.7.4.tar.gz QT Creator: qt-creator-li ...
- Ubuntu下安装JDK以及相关配置
1.查看系统位数,输入以下命令即可 getconf LONG_BIT 2.下载对应的JDK文件,我这里下载的是jdk-8u60-linux-64.tar.gz 3.创建目录作为JDK的安装目录,这里选 ...
- Ubuntu下安装mod_python报错(GIT错误)
Ubuntu下安装mod_python3.4.1版本报出如下错误: writing byte-compilation script '/tmp/tmpE91VXZ.py' /usr/bin/pytho ...
- TODO:Ubuntu下安装Node
TODO:Ubuntu下安装Node Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境.Node.js 使用了一个事件驱动.非阻塞式 I/O 的模型,使其轻量又高 ...
- Ubuntu杂记——Ubuntu下安装VMware
转战Ubuntu,不知道能坚持多久,但是自己还是要努力把转战过程中的学习到的给记录下来.这次就来记录一下,Ubuntu下如何安装VMware. 就我所知,Linux下有VirtualBox和VMwar ...
- 来杯Caffe——在ubuntu下安装Caffe框架并测试
Caffe是一种深度学习框架...blablabla...... Caffe要在ubuntu下安装 1. 安装依赖 sudo apt-get install libatlas-base-dev sud ...
- Ubuntu 下安装 Mysql
这里讲用Ubuntu下安装MySql ubuntu上安装mysql非常简单只需要几条命令就可以完成. 1. sudo apt-get install mysql-server 2. apt-get ...
- ubuntu下安装配置OpenCV
Cmake的安装 我用的是ubuntu-software自动下载安装的. Ubuntu 下安装 OpenCV 首先下载安装相关包,然后下载OpenCV 系统:ubuntu16.04 OpenCV:2. ...
随机推荐
- zlog使用手册,小靠谱啊
http://hardysimpson.github.io/zlog/UsersGuide-CN.html Chapter 1 zlog是什么? zlog是一个高可靠性.高性能.线程安全.灵活.概念清 ...
- 自制单片机之二-----AT89S51ISP下载线的制做
最小系统板做好了,接下来就是做根ISP下载线了.否则程序怎么写到AT89S51芯片里呢? 先来认识一下AT89S51上ISP(在线编程)功能脚的定义 看上图的左边AT89S51引脚图的P1.5.P1. ...
- 深入理解Java的protected修饰符
其实Java的protected修饰符,权限定义的很微妙,大致有以下几种: (1)protected控制符用于修饰方法和成员变量: (2)一个类的protected方法或成员变量,在包外是不能通过该类 ...
- 黑马程序员_Java面向对象3_多态
5.面向对象_多态 多态定义:某一种事物存在的多种形态. 例:动物中猫,狗. 猫这个对象对应的类型是猫类型. 猫 x = new 猫(); 同时猫也是动物的一种,也可以把猫称为动物. 动物 y = n ...
- Raid1源代码分析--初始化流程
初始化流程代码量比较少,也比较简单.主要是run函数.(我阅读的代码的linux内核版本是2.6.32.61) 四.初始化流程分析 run函数顾名思义,很简单这就是在RAID1开始运行时调用,进行一些 ...
- sicily 1155 Can I Post the letter
题意:判断有向图两点之间是否可通达! 解法:深搜或广搜(注意避免旧路重行) DFS: #include<iostream> #include<vector> #include& ...
- Squid--hash代码分析
#ifndef SQUID_HASH_H #define SQUID_HASH_H //几个函数和变量的别名 typedef void HASHFREE(void *); typedef int HA ...
- c语言条件表达式误区1
#include <stdio.h> #include <stdlib.h> //综合1 和 2我们知道牢记条件表达式中常量写在左边的语法规则 以防因为疏忽造成难以查找的错误 ...
- 如何将EXCEL表导入MYSQL
在平时的工作学习中,难免会遇到需要把EXCEL表中的数据导入到MYSQL中,比如要把EXCEL中的数据进行核对,或者要把测试用例导入到TestLink中.本人搜集相关的资料并加以实践总 ...
- 高性能MySql进化论【转】
高性能MySql进化论(十二):Mysql中分区表的使用总结 http://binary.duapp.com/category/sql 当数据量非常大时(表的容量到达GB或者是TB),如果仍然采用索引 ...