linux postgresql默认安装目录,postgresql - 三种安装方式(示例代码)

最近接触了postgresql的安装,和大家分享一下。

一、简 介

PostgreSQL 是一种非常复杂的对象-关系型数据库管理系统(ORDBMS),也是目前功能最强大,特性最丰富和最复杂的自由软件数据库系统。有些特性甚至连商业数据库都不具备。这个起源于伯克利(BSD)的数据库研究计划目前已经衍生成一项国际开发项目,并且有非常广泛的用户。

二、三种安装过程

A. RPM包安装

1. 检查PostgreSQL 是否已经安装

rpm -qa|grep postgres

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

2. 下载RPM包

3. 安装PostgreSQL,注意安装顺序

# rpm -ivh postgresql92-libs-9.2.4-1PGDG.rhel6.i686.rpm

# rpm -ivh postgresql92-9.2.4-1PGDG.rhel6.i686.rpm

# rpm -ivh postgresql92-server-9.2.4-1PGDG.rhel6.i686.rpm

# rpm -ivh postgresql92-contrib-9.2.4-1PGDG.rhel6.i686.rpm

4. 初始化PostgreSQL库

PostgreSQL 服务初次启动的时候会提示初始化。

a05df11d34a5ee46744c13b9f622d427.png

# service postgresql-9.2 initdb

23c4d347413f0e134b248f5d6e45724a.png

5. 启动服务

# service postgresql-9.2 start

bafd8b47ee8d0dc5abafb4de3b3f17ea.png

6. 把PostgreSQL 服务加入到启动列表

# chkconfig postgresql-9.2on

# chkconfig --list|grep postgres

7. 修改PostgreSQL数据库用户postgres的密码(注意不是linux系统帐号)

PostgreSQL数据库默认会创建一个postgres的数据库用户作为数据库的管理员,默认密码为空,我们需要修改为指定的密码,这里设定为’postgres’。

# su - postgres

$ psql

# ALTERUSER postgres WITH PASSWORD ‘postgres‘;

# select*from pg_shadow ;

bfe57347d977eba0ae9b53bdfe1ac975.png

B. yum 安装

1. 将刚才安装的PostgreSQL 卸载

# /etc/init.d/postgresql-9.2 stop  //停止PostgreSQL服务

//查看已安装的包

# rpm -qa|grep postgres

//卸载

# rpm -e postgresql92-server-9.2.4-1PGDG.rhel6.i686

# rpm -e postgresql92-contrib-9.2.4-1PGDG.rhel6.i686

# rpm -e postgresql92-9.2.4-1PGDG.rhel6.i686

# rpm -e postgresql92-libs-9.2.4-1PGDG.rhel6.i686

2. yum 安装

如果是默认yum 安装的话,会安装较低版本的PostgreSQL 8.4,这不符合我们的要求。

d8ca1a276fb1bebb946b49c1c0727b38.png

我们使用PostgreSQL Yum Repository 来安装最新版本的PostgreSQL。

2.1 安装PostgreSQL yum repository

# rpm -i http://yum.postgresql.org/9.2/RedHat/rhel-6-x86_64/pgdg-redhat92-9.2-7.noarch.rpm

2.2 安装新版本PostgreSQL

# yum install postgresql92-server postgresql92-contrib

2.3 查看安装

6b739ff0b5169889860f303af2309184.png

3. 初始化并启动数据库

4e2ea91e54044b0222827fb8175365ff.png

配置文件:/var/lib/pgsql/data/pg_hba.conf

4. 测试

67da594d78a0a331dacd790e58853779.png

其他步骤如A方式。

C. 源码包安装

1、下载Postgresql源代码

2、解压该文件

tar xjvf postgresql-9.0.3.tar.bz2

3、进入解压后的目录

cd postgresql-9.0.3/

4、查看INSTALL

INSTALL文件中Short Version部分解释了如何安装postgresql的命令,Requirements部分描述了安装postgresql所依赖的lib,比较长,先 configure试一下,如果出现error,那么需要检查是否满足了Requirements的要求。

Short Version

./configuregmakesugmake installadduser postgresmkdir /usr/local/pgsql/datachown postgres /usr/local/pgsql/datasu - postgres/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data >logfile 2>&1 &/usr/local/pgsql/bin/createdb test/usr/local/pgsql/bin/psql test

5、执行INSTALL文件中Short Version的命令,开始编译安装postgrepsql数据库。

./configure   --prefix=/usr/local/pgsql --with-perl --with-python --with-libxml --with-libxslt

configure: error: readline library not found

If you have readline already installed, see config.log for details on the

failure. It is possible the compiler isnt looking in the proper directory.

yum install -y readline-devel

(sudo apt-get install libreadline5-dev && sudo apt-get install zlib1g-dev)

configure: error: library ‘xslt‘ is required for XSLT support

yum install libxslt libxslt-devel

configure: error: header file  is required for Python

yum install python python-devel

configure: error: could not determine flags for linking embedded Perl.

yum install perl-ExtUtils-Embed

安装readline包之后,重新configure,成功。

6、make

7、make install

8、添加用户postgres

useradd postgres

9、创建数据库文件存储文件夹

mkdir /usr/local/pgsql/data

#mkdir /data/pgsql

10、改变先前创建的data目录的文件夹的权限

chown postgres /usr/local/pgsql/data

#chown postgres  /data/pgsql

11、切换用户

su - postgres

12、绑定数据库文件存储目录

/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data

#export PATH=$PATH:/usr/local/pgsql/bin/

#/usr/local/pgsql/bin/initdb -D  /data/pgsql

13、启动数据库

/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data >logfile 2>&1

[1] 18635

#/usr/local/pgsql/bin/postgres -D  /data/pgsql  >logfile 2>&1

[1] 18635

14、创建数据库test

/usr/local/pgsql/bin/createdb test

15、连接到test数据库

/usr/local/pgsql/bin/psql test

psql (9.0.3)

Type "help" for help.

test=#

16、创建表table1

test=# create table table1 (

test(# id integer

test(# );

CREATE TABLE

test=#

17、向table1表中插入一条记录

test=# insert into table1 values(1);

INSERT 0 1

18、查询刚刚插入的记录

test=# select * from table1;

id

----

1

0494e829016667bca096101c4f833891.png

三、客户端安装

因为对于我们来说postgre应用范围很小,单纯去学他的命令行,对于我们的时间管理不是太合适。

所以我们可以去下载一个客户端,进行一些简单的操作,推荐navicat官网去下载postgresql客户端;

----------------------------------------------------------------------------------------

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/526649.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux不显示无线网卡驱动安装失败,Linux_Ubuntu无线网卡驱动安装方法,安装了Ubuntu后发现没有无线网 - phpStudy...

Ubuntu无线网卡驱动安装方法安装了Ubuntu后发现没有无线网络,搜索不到WiFi,但是正常情况下安装Ubuntu后,系统会自动安装无线网卡驱动,并且开机自动连接无线网。查了一下,原来我的网卡是非主流网卡,Ubuntu不…

linux消息总线日志,linux – 解密继续mpt2sas系统日志消息

摘要我在syslog中收到这些神秘的消息,因为我安装了一些新的硬件,我无法弄清楚问题是什么,如果它是严重的,或者该怎么做.它们来自新的SATA HBA,它们遵循一种模式.我会得到几条第一条消息,然后是5-30秒之后的第二条消息.它们都是以相同的秒数记录的blob,每个的确切数量在大约2到3…

linux中央服务器,如何在Linux上搭建一个Git中央仓库

前言:本教程只面向那些个人开发者,想要自己在linux上搭建一个git中央仓库用来上传发布自己的项目。但是对于团队来说可能有更高的要求,可以使用gitlab搭建一个可视化的类似github的版本管理系统测试环境我使用的linux版本是Centos7&#xff0…

linux桌面发展方向,观点|Linux 桌面的发展之路!

Ken Starks 在 fossforce.com 网站上问 你们是如何优化 Linux 的?,我很高兴他问了这个问题,因为我有话要说!对我来说,Linux 桌面就是一连串的承诺,但是这些承诺却总是无法兑现。它在每个版本发布后都会说“…

arm linux 脚本 排序,arm-linux连接以及连接脚本

前言:arm linux的连接工具可以使用arm-linux-ld,在进行连接时可以使用-T命令采用脚本控制,如不指明脚本,则使用默认的脚本文件,参见arm-linux-ld的缺省linker script。一.目标文件格式与类型本文引用地址:h…

linux常见基础服务,常用的linux命令的基本使用(一)

序号命令对应英文作用01lslist查看当前文件夹下的内容02pwdprint name of of current/working directory查看当前所在文件夹03cd[目录名]change directory切换文件夹04touch[目录名]touch如果文件不存在,新建文件05mkdir[目录名]make directory创建目录06rm[文件名]…

vlc-qt编译 linux,记录一次搞vlc官方源码中Qt示例工程的过程,文件路径对话框

代码目录:E:\vlc-3.0.12\doc\libvlc\QtPlayer编译成立,但是libvlc_new返回NULL老子就是要搞他,在网上的其他人成功的代码帮助下要把他搞成(背景是:老板要在Qt界面里播放视频文件,本身知道opencv会更简单点,但是想自己去根据文档再熟悉vlc sdk的使用)libvlc_new返回NULL原因是pl…

linux kernel 调度,在Linux中,实时调度_kernel_开发99编程知识库

在實時調度,fifo和RR不具有完全相同的含義他們在非實時調度。 但是,進程總是在FIFO方式中選擇的時間量程SCHED_FIFO不限制不同的時間量程SCHED_RR 。schED_FIFO進程不能preempt SCHED_RR進程相同的優先順序。sched_setscheduler( 2 ) linux手冊頁。。。&…

c语言程序设计课程设计心得体会,C语言程序课程设计心得体会

在科技高度发展的今天,计算机在人们之中的作用越来越突出,学习它,有助于我们更好的了解计算机,与计算机进行交流,因此,c语言的学习对我们尤其重要。在这个星期里,我们专业的学生在专业老师的带领…

树莓派怎么学linux,树莓派使用入门用树莓派学 Linux

树莓派使用入门用树莓派学 Linux我们的《树莓派使用入门》的第四篇文章将进入到 Linux 命令行。在本系列的 第三篇文章 中开始了我们的树莓派探索之旅,我分享了如何安装 Raspbian,它是树莓派的官方 Linux 版本。现在,你已经安装好了 Raspbian…

全国计算机二级C语言过关要求,计算机二级考试c语言过关经验

计算机二级考试c语言过关经验考试要求考生在规定的时间内按指定的方式解答精心选定的题目或按主办方的要求完成一定的实际操作的任务,并由主办方评定其结果,从而为主办方提供考生某方面的知识或技能状况的信息。下面是小编整理的关于计算机二级考试c语言…

c语言链表贪吃蛇脚本之家,C++控制台实现贪吃蛇游戏

本文实例为大家分享了C实现贪吃蛇游戏的具体代码,供大家参考,具体内容如下刚学完了C语言,便尝试的写了贪吃蛇的代码,但是效果不佳,很多的bug,所以,这个学了C,便重新的写了这个小游戏…

c语言isfinite用法,C# Double.IsFinite()用法及代码示例

Double.IsFinite()方法用于检查double值是否超出范围。用法: public static bool IsFinite (double value);返回值:如果值是有限的,则此方法返回true,否则返回false。下面的程序说明Double.IsFinite()方法的使用:示例1…

窄带语谱图c语言算法,MELP语音编码算法实现及算法改进

摘要:随着数字通信在当今社会的快速发展和广泛应用,低速率语音编码以其极低的编码速率,高质量的合成效果在网络通信,军事通信,保密通信和卫星通信等领域发挥着及其重要的作用,成为语音编码中的关键技术。当前标准化的各种算法中,MELP语音编码算法以LPC声码器为基础作…

android gta5 下载地址,GTA 5 for Android下载

GTA 5 for Android下载介绍GTA 5 for Android下载是这款游戏的全新版本,相比上个版本加入更多全新的剧情内容和道具,可以称得上是该系列至今为止最庞大也最具野心的作品,带来上至高山、下至深海,规模空前、细腻无比且充满生命力的…

win8能开发android的sdk么,Win8下Android SDK安装与环境变量配置教程

Win8下Android SDK的安装与环境变量配置,具体内容如下1、下载Android SDK,点击安装,直接默认路径即可!进入该网站后往下拉就能找到sdk下载的位置,选择图中红圈的程序进行下载2、安装过程比较简单,按照平时安…

Android公共jar,使用JitPack管理Android项目中公共模块库

随着项目的功能越来越多,代码和模块维护也越来越复杂,为了减少主项目的代码量,一般都会将一些公共使用的类或者功能模块抽离出来,与主项目解耦分离,当主项目中需要使用的时候,直接进行引用即可。现在Androi…

mac android 手机连接打印机,为什么苹果电脑连接打印机打不出来怎么办

1. 为什么苹果笔记本连接打印机打印不了1、您的 Wi-Fi 或本地网络上的 AirPrint 打印机。2、临近的 Wi-Fi 打印机或位于您本地网络且支持 Bonjour 的基于有线网络的打印机。3、连接到家庭网络中 Time Capsule 或 AirPort 基站的 USB 端口的打印机。4、与家庭网络中的其他 Mac 共…

Android 数据库 哪个好,目前最好用的安卓数据库,DBFlow使用详解

1.在你使用之前,建议你先阅读一下官方文档https://agrosner.gitbooks.io/dbflow/content/2.步骤如下:(1)在项目级的gradle中添加buildscript {repositories {jcenter()}dependencies {classpath com.android.tools.build:gradle:2.3.2classpath com.neen…

android 左右卡片切换,3D卡片切换

源码片段public class MainActivity extends FragmentActivity implements OnCardClickListener{List list;private TestFragment frag;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_ma…