CentOS 6.5下PostgreSQL服务部署

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

os:CentOS 6.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 -vhi pgdg-RedHat92-9.2-8.noarch.rpm
[root@vm2 ~]# yum install postgresql92-server postgresql92-contrib -y

1.2、初始化并启动数据库
[root@vm2 ~]# /etc/init.d/postgresql-9.2 initdb
正在初始化数据库:                                        [确定]
[root@vm2 ~]# /etc/init.d/postgresql-9.2 start
启动 postgresql-9.2 服务:                                [确定]

[root@vm2 ~]# echo “PATH=/usr/pgsql-9.2/bin:$PATH” >> /etc/profile
[root@vm2 ~]# echo “export PATH” >> /etc/profile

1.3、测试
[root@vm2 ~]# su – postgres
-bash-4.1$ psql
psql (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/postgres
 template1 | 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 * from pg_shadow;
 usename  | usesysid | usecreatedb | usesuper | usecatupd | userepl | passwd | valuntil | useconfig 
———-+———-+————-+———-+———–+———+——–+———-+———–
 postgres |      10 | t          | t        | t        | t      |        |          | 
(1 行记录)
 
postgres=#  ALTER USER postgres WITH PASSWORD ‘postgres’;
ALTER ROLE
postgres=# select * from pg_shadow;
 usename  | usesysid | usecreatedb | usesuper | usecatupd | userepl |              passwd                | valuntil | useconfig 
———-+———-+————-+———-+———–+———+————————————-+———-+———–
 postgres |      10 | t          | t        | t        | t      | md53175bce1d3201d16594cebf9d7eb3f9d |          | 
(1 行记录)
 
postgres=#

1.5、创建测试数据库
postgres=# create database testdb;
CREATE DATABASE
postgres=# \c testdb;
您现在已经连线到数据库 “testdb”,用户 “postgres”.
testdb=#

1.6、创建测试表
testdb=#  create table test (id integer, name text);
CREATE TABLE
testdb=# insert into test values(1,’lansgg’);
INSERT 0 1
testdb=# select * from test;
 id |  name 
—-+——–
  1 | lansgg
(1 行记录)

1.7、查看表结构
testdb=# \d test;
  资料表 “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.conf
host    all            all            127.0.0.1/32            ident
host    all            all            all                    md5

[root@vm2 ~]# /etc/init.d/postgresql-9.2 restart
停止 postgresql-9.2 服务:                                [确定]
启动 postgresql-9.2 服务:                                [确定]
[root@vm2 ~]#

2、源码安装
停止上面yum安装的pgsql服务,下载PostgreSQL 源码包
[root@vm2 ~]# /etc/init.d/postgresql-9.2 stop
停止 postgresql-9.2 服务:                                [确定]
[root@vm2 ~]# wget 
[root@vm2 ~]# tar jxvf postgresql-9.2.4.tar.bz2
[root@vm2 ~]# cd postgresql-9.2.4

查看INSTALL 文件
more INSTALL
INSTALL 文件中Short Version 部分解释了如何安装PostgreSQL 的命令,Requirements 部分描述了安装PostgreSQL 所依赖的lib,比较长,先configure 试一下,如果出现error,那么需要检查是否满足了Requirements 的要求。
开始编译安装PostgreSQL 数据库。
[root@vm2 postgresql-9.2.4]# ./configure
[root@vm2 postgresql-9.2.4]# gmake
[root@vm2 postgresql-9.2.4]# gmake install
[root@vm2 postgresql-9.2.4]# echo “PGHOME=/usr/local/pgsql” >> /etc/profile
[root@vm2 postgresql-9.2.4]# echo “export PGHOME” >> /etc/profile
[root@vm2 postgresql-9.2.4]# echo “PGDATA=/usr/local/pgsql/data” >> /etc/profile
[root@vm2 postgresql-9.2.4]# echo “export PGDATA” >> /etc/profile
[root@vm2 postgresql-9.2.4]# echo “PATH=$PGHOME/bin:$PATH” >> /etc/profile
[root@vm2 postgresql-9.2.4]# echo “export PATH” >> /etc/profile
[root@vm2 postgresql-9.2.4]# source /etc/profile
[root@vm2 postgresql-9.2.4]#

2.2、初始化数据库
useradd -d /opt/postgres postgres              ######如果没有此账户就创建,前面yum安装的时候已经替我们创建了
[root@vm2 postgresql-9.2.4]# mkdir /usr/local/pgsql/data
[root@vm2 postgresql-9.2.4]# chown postgres.postgres /usr/local/pgsql/data/
[root@vm2 postgresql-9.2.4]# su – postgres
 
-bash-4.1$ /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data/
The files belonging to this database system will be owned by user “postgres”.
This user must also own the server process.
 
The database cluster will be initialized with locale “zh_CN.UTF-8”.
The default database encoding has accordingly been set to “UTF8”.
initdb: could not find suitable text search configuration for locale “zh_CN.UTF-8”
The default text search configuration will be set to “simple”.
 
fixing permissions on existing directory /usr/local/pgsql/data … ok
creating subdirectories … ok
selecting default max_connections … 100
selecting default shared_buffers … 32MB
creating configuration files … ok
creating template1 database in /usr/local/pgsql/data/base/1 … ok
initializing pg_authid … ok
initializing dependencies … ok
creating system views … ok
loading system objects’ descriptions … ok
creating collations … ok
creating conversions … ok
creating dictionaries … ok
setting privileges on built-in objects … ok
creating information schema … ok
loading PL/pgSQL server-side language … ok
vacuuming database template1 … ok
copying template1 to template0 … ok
copying template1 to postgres … ok
 
WARNING: enabling “trust” authentication for local connections
You can change this by editing pg_hba.conf or using the option -A, or
–auth-local and –auth-host, the next time you run initdb.
 
Success. You can now start the database server using:
 
    /usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data
or
    /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start
 
-bash-4.1$

1.3、添加到系统服务
-bash-4.1$ exit
logout
[root@vm2 postgresql-9.2.4]#  cp /root/postgresql-9.2.4/contrib/start-scripts/linux /etc/init.d/postgresql
[root@vm2 postgresql-9.2.4]# chmod +x /etc/init.d/postgresql
[root@vm2 postgresql-9.2.4]# /etc/init.d/postgresql start
Starting PostgreSQL: ok
[root@vm2 postgresql-9.2.4]# chkconfig –add postgresql
[root@vm2 postgresql-9.2.4]# chkconfig postgresql on
[root@vm2 postgresql-9.2.4]#

1.4、测试使用
[root@vm2 postgresql-9.2.4]# su – postgres
-bash-4.1$ psql -l
                                  List of databases
  Name    |  Owner  | Encoding |  Collate  |    Ctype    |  Access privileges   
———–+———-+———-+————-+————-+———————–
 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/postgres
 template1 | postgres | UTF8    | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/postgres          +
          |          |          |            |            | postgres=CTc/postgres
(3 rows)
 
-bash-4.1$ psql
psql (9.2.4)
Type “help” for help.
 
postgres=# create database testdb;
CREATE DATABASE
postgres=# \c testdb;
You are now connected to database “testdb” as user “postgres”.
testdb=# create table test(id int,name text,age int);
CREATE TABLE
testdb=# \d test
    Table “public.test”
 Column |  Type  | Modifiers 
——–+———+———–
 id    | integer | 
 name  | text    | 
 age    | integer | 
 
testdb=# insert into test values(1,’lansgg’,25);
INSERT 0 1
testdb=# select * from test;
 id |  name  | age 
—-+——–+—–
  1 | lansgg |  25
(1 row)
 
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,否则删除时会提示“不能删除一个模板数据库”

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/220885.html<

(0)
管理的头像管理
上一篇2025-04-14 18:54
下一篇 2025-04-14 18:56

相关推荐

  • 站群服务器和普通服务器到底哪个更适合GEO,怎么选?

    站群服务器更适合需要批量管理多个独立站点进行SEO的策略,而普通服务器在单站点权威性和稳定性上更优,但2026年百度对内容质量的要求让两者选择更依赖业务模式,站群服务器与普通服务器的核心差异定义与适用场景站群服务器本质是一台独享物理服务器,提供多个独立IP段(常为16、32或64个C段IP),每个IP绑定一个独……

    2026-07-28
    0
  • 物理服务器和云服务器做站群到底选哪个,哪个更稳定?

    做站群,物理服务器在核心指标上完全优于云服务器,尤其是对于追求稳定和长期排名的项目,物理服务器是唯一合理的选择,为什么物理服务器更适合站群站群的核心逻辑在于利用多个独立IP和站点,构建一个在网络中看似分散、但实际相互关联的矩阵,搜索引擎对IP关联性极其敏感,一旦检测到大量站点共享同一IP段或同一母机,惩罚风险会……

    2026-07-28
    0
  • 国内高防服务器哪家防御真实靠谱,怎么选?

    国内高防服务器哪家防御真实靠谱?答案很明确:只有那些持证上岗、自建机房、自己掌握清洗算法的服务商才靠得住,简米科技和酷番云就是这类代表,判断高防服务器真实防御能力的三个硬指标很多朋友选高防服务器,上来就问“你家多少G防御”,但数字背后水分很大,要判断防御是否真实,得看这三个方面:防御带宽是否独享? 有些服务商宣……

    2026-07-28
    0
  • 裸金属服务器和物理服务器有什么区别?,怎么选?

    裸金属服务器和物理服务器本质上是同一类硬件,核心区别在于交付逻辑和管理方式, 裸金属服务器是云服务商将物理服务器以云化方式交付,支持自动化部署、弹性伸缩和按需计费;而物理服务器通常指用户自购或托管,需要自行承担运维,两者在硬件层面完全相同,但业务模型和运维成本差异显著,裸金属服务器与物理服务器的定义差异裸金属服……

    2026-07-28
    0
  • 做GEO站群选哪家服务器服务商靠谱,怎么选?

    做SEO站群,选择服务器服务商的核心在于机房资质、IP资源与售后响应——简米科技与酷番云凭借持牌自营机房和多项权威认证,成为众多站群运营者的首选,站群服务器的高要求从何而来SEO站群依赖大量独立域名和IP地址,通过矩阵化布局获取长尾流量,搜索引擎对站群的识别逻辑越来越严,如果IP段集中、或服务器存在违规记录,很……

    2026-07-28
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注