Postgresql服务部署

Postgresql服务部署,第1张

概述PostgreSQL 是一种非常复杂的对象-关系型数据库管理系统(ORDBMS),也是目前功能最强大,特性最丰富和最复杂的自由软件数据库系统。 os:centos6.5 x64 ip:192.168.85.130 hostname: vm2.lansgg.com pg 版本:postgresql-9.2.4.tar.bz2 一、yum安装 二、源码安装 三、系统数据库 1、yum安装 [root@

Postgresql 是一种非常复杂的对象-关系型数据库管理系统(ORDBMS),也是目前功能最强大,特性最丰富和最复杂的自由软件数据库系统。
os:centos6.5 x64

ip:192.168.85.130

hostname: vm2.lansgg.com

pg 版本:postgresql-9.2.4.tar.bz2


一、yum安装
二、源码安装

三、系统数据库



1、yum安装

[root@vm2~]#wget[root@vm2~]#rpm-vhipgdg-redhat92-9.2-8.noarch.rpm[root@vm2~]#yuminstallpostgresql92-serverpostgresql92-contrib-y

1.2、初始化并启动数据库

[root@vm2~]#/etc/init.d/postgresql-9.2initdb正在初始化数据库:[确定][root@vm2~]#/etc/init.d/postgresql-9.2start启动postgresql-9.2服务:[确定]
[root@vm2~]#echo"PATH=/usr/pgsql-9.2/bin:$PATH">>/etc/profile[root@vm2~]#echo"exportPATH">>/etc/profile

1.3、测试

[root@vm2~]#su-postgres-bash-4.1$psqlpsql(9.2.19)输入"help"来获取帮助信息.postgres=#\l资料库列表名称|拥有者|字元编码|校对规则|Ctype|存取权限-----------+----------+----------+-------------+-------------+-----------------------postgres|postgres|UTF8|zh_CN.UTF-8|zh_CN.UTF-8|template0|postgres|UTF8|zh_CN.UTF-8|zh_CN.UTF-8|=c/postgres+|||||postgres=CTc/postgrestemplate1|postgres|UTF8|zh_CN.UTF-8|zh_CN.UTF-8|=c/postgres+|||||postgres=CTc/postgres(3行记录)postgres=#

1.4、修改管理员密码

修改Postgresql 数据库用户postgres的密码(注意不是linux系统帐号)
Postgresql 数据库默认会创建一个postgres的数据库用户作为数据库的管理员,默认密码为空,我们需要修改为指定的密码,这里设定为’postgres’。

postgres=#select*frompg_shadow;usename|usesysID|usecreatedb|usesuper|usecatupd|userepl|passwd|valuntil|useconfig----------+----------+-------------+----------+-----------+---------+--------+----------+-----------postgres|10|t|t|t|t|||(1行记录)postgres=#ALTERUSERpostgresWITHPASSWORD'postgres';ALTERRolEpostgres=#select*frompg_shadow;usename|usesysID|usecreatedb|usesuper|usecatupd|userepl|passwd|valuntil|useconfig----------+----------+-------------+----------+-----------+---------+-------------------------------------+----------+-----------postgres|10|t|t|t|t|md53175bce1d3201d16594cebf9d7eb3f9d||(1行记录)postgres=#

1.5、创建测试数据库

postgres=#createdatabasetestdb;CREATEDATABASEpostgres=#\ctestdb;您现在已经连线到数据库"testdb",用户"postgres".testdb=#

1.6、创建测试表

testdb=#createtabletest(IDinteger,nametext);CREATEtabletestdb=#insertintotestvalues(1,'lansgg');INSERT01testdb=#select*fromtest;ID|name----+--------1|lansgg(1行记录)

1.7、查看表结构

testdb=#\dtest;资料表"public.test"栏位|型别|修饰词------+---------+--------ID|integer|name|text|

1.8、修改Postgressql 数据库配置实现远程访问

修改postgresql.conf 文件

如果想让Postgresql 监听整个网络的话,将Listen_addresses 前的#去掉,并将 Listen_addresses = 'localhost' 改成 Listen_addresses = '*'
修改客户端认证配置文件pg_hba.conf

[root@vm2~]#vim/var/lib/pgsql/9.2/data/pg_hba.confhostallall127.0.0.1/32IDenthostallallallmd5
[root@vm2~]#/etc/init.d/postgresql-9.2restart停止postgresql-9.2服务:[确定]启动postgresql-9.2服务:[确定][root@vm2~]#

2、源码安装

停止上面yum安装的pgsql服务,下载Postgresql 源码包

[root@vm2~]#/etc/init.d/postgresql-9.2stop停止postgresql-9.2服务:[确定][root@vm2~]#wget[root@vm2~]#tarjxvfpostgresql-9.2.4.tar.bz2[root@vm2~]#cdpostgresql-9.2.4

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

[root@vm2postgresql-9.2.4]#./configure[root@vm2postgresql-9.2.4]#gmake[root@vm2postgresql-9.2.4]#gmakeinstall[root@vm2postgresql-9.2.4]#echo"PGHOME=/usr/local/pgsql">>/etc/profile[root@vm2postgresql-9.2.4]#echo"exportPGHOME">>/etc/profile[root@vm2postgresql-9.2.4]#echo"PGDATA=/usr/local/pgsql/data">>/etc/profile[root@vm2postgresql-9.2.4]#echo"exportPGDATA">>/etc/profile[root@vm2postgresql-9.2.4]#echo"PATH=$PGHOME/bin:$PATH">>/etc/profile[root@vm2postgresql-9.2.4]#echo"exportPATH">>/etc/profile[root@vm2postgresql-9.2.4]#source/etc/profile[root@vm2postgresql-9.2.4]#

2.2、初始化数据库

useradd-d/opt/postgrespostgres######如果没有此账户就创建,前面yum安装的时候已经替我们创建了[root@vm2postgresql-9.2.4]#mkdir/usr/local/pgsql/data[root@vm2postgresql-9.2.4]#chownpostgres.postgres/usr/local/pgsql/data/[root@vm2postgresql-9.2.4]#su-postgres-bash-4.1$/usr/local/pgsql/bin/initdb-D/usr/local/pgsql/data/Thefilesbelongingtothisdatabasesystemwillbeownedbyuser"postgres".Thisusermustalsoowntheserverprocess.ThedatabaseclusterwillbeinitializeDWithlocale"zh_CN.UTF-8".ThedefaultdatabaseenCodinghasaccordinglybeensetto"UTF8".initdb:Couldnotfindsuitabletextsearchconfigurationforlocale"zh_CN.UTF-8"Thedefaulttextsearchconfigurationwillbesetto"simple".fixingpermissionsonexistingdirectory/usr/local/pgsql/data...okcreatingsubdirectorIEs...okselectingdefaultmax_connections...100selectingdefaultshared_buffers...32MBcreatingconfigurationfiles...okcreatingtemplate1databasein/usr/local/pgsql/data/base/1...okinitializingpg_authID...okinitializingdependencIEs...okcreatingsystemvIEws...okloadingsystemobjects'descriptions...okcreatingcollations...okcreatingconversions...okcreatingdictionarIEs...oksettingprivilegesonbuilt-inobjects...okcreatinginformationschema...okloadingPL/pgsqlserver-sIDelanguage...okvacuumingdatabasetemplate1...okcopyingtemplate1totemplate0...okcopyingtemplate1topostgres...okWARNING:enabling"trust"authenticationforlocalconnectionsYoucanchangethisbyeditingpg_hba.conforusingtheoption-A,or--auth-localand--auth-host,thenexttimeyouruninitdb.Success.YoucanNowstartthedatabaseserverusing:/usr/local/pgsql/bin/postgres-D/usr/local/pgsql/dataor/usr/local/pgsql/bin/pg_ctl-D/usr/local/pgsql/data-llogfilestart-bash-4.1$

1.3、添加到系统服务

-bash-4.1$exitlogout[root@vm2postgresql-9.2.4]#cp/root/postgresql-9.2.4/contrib/start-scripts/linux/etc/init.d/postgresql[root@vm2postgresql-9.2.4]#chmod+x/etc/init.d/postgresql[root@vm2postgresql-9.2.4]#/etc/init.d/postgresqlstartStartingPostgresql:ok[root@vm2postgresql-9.2.4]#chkconfig--addpostgresql[root@vm2postgresql-9.2.4]#chkconfigpostgresqlon[root@vm2postgresql-9.2.4]#

1.4、测试使用

[root@vm2postgresql-9.2.4]#su-postgres-bash-4.1$psql-llistofdatabasesname|Owner|EnCoding|Collate|Ctype|Accessprivileges-----------+----------+----------+-------------+-------------+-----------------------postgres|postgres|UTF8|zh_CN.UTF-8|zh_CN.UTF-8|template0|postgres|UTF8|zh_CN.UTF-8|zh_CN.UTF-8|=c/postgres+|||||postgres=CTc/postgrestemplate1|postgres|UTF8|zh_CN.UTF-8|zh_CN.UTF-8|=c/postgres+|||||postgres=CTc/postgres(3rows)-bash-4.1$psqlpsql(9.2.4)Type"help"forhelp.postgres=#createdatabasetestdb;CREATEDATABASEpostgres=#\ctestdb;YouareNowconnectedtodatabase"testdb"asuser"postgres".testdb=#createtabletest(IDint,nametext,ageint);CREATEtabletestdb=#\dtesttable"public.test"Column|Type|ModifIErs--------+---------+-----------ID|integer|name|text|age|integer|testdb=#insertintotestvalues(1,'lansgg',25);INSERT01testdb=#select*fromtest;ID|name|age----+--------+-----1|lansgg|25(1row)testdb=#

3、系统数据库


在创建数据集簇之后,该集簇中默认包含三个系统数据库template1、template0和postgres。其中template0和postgres都是在初始化过程中从template1拷贝而来的。 template1和template0数据库用于创建数据库。Postgresql中采用从模板数据库复制的方式来创建新的数据库,在创建数据库的命令中可以用“-T”选项来指定以哪个数据库为模板来创建新数据库。 template1数据库是创建数据库命令默认的模板,也就是说通过不带“-T”选项的命令创建的用户数据库是和template1一模一样的。template1是可以修改的,如果对template1进行了修改,那么在修改之后创建的用户数据库中也能体现出这些修改的结果。template1的存在允许用户可以制作一个自定义的模板数据库,在其中用户可以创建一些应用需要的表、数据、索引等,在日后需要多次创建相同内容的数据库时,都可以用template1作为模板生成。 由于template1的内容有可能被用户修改,因此为了满足用户创建一个“干净”数据库的需求,Postgresql提供了template0数据库作为最初始的备份数据,当需要时可以用template0作为模板生成“干净”的数据库。 而第三个初始数据库postgres用于给初始用户提供一个可连接的数据库,就像linux系统中一个用户的主目录一样。 上述系统数据库都是可以删除的,但是两个模板数据库在删除之前必须将其在pg_database中元组的datistemplate属性改为FALSE,否则删除时会提示“不能删除一个模板数据库”

总结

以上是内存溢出为你收集整理的Postgresql服务部署全部内容,希望文章能够帮你解决Postgresql服务部署所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1173568.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存