centos6.5 搭建postgresql小结

安装前准备

yum install readline-devel zlib-devel

下载源码并解压、编译安装

wget https://ftp.postgresql.org/pub/source/v9.4.1/postgresql-9.4.1.tar.bz2 
tar -xjvf postgresql-9.4.1.tar.bz2 
cd postgresql-9.4.1 
./configure --prefix=/home/hadoop/pgsql
make 
make install 

注明:这里为了省事直接使用用户hadoop进行操作。最好单独建立一个用户,如:postgres

建立好database cluster目标文件夹

mkdir -p /home/hadoop/pgsql/data

环境变量设置

vim /etc/profile 
# postgres 
PGDATA=/home/hadoop/pgsql/data 
PATH=$PATH:/home/hadoop/pgsql/bin
export PGDATA PATH 

让环境变量生效

source /etc/profile

初始化数据库(指定PGDATA后可以不用-D参数)

pg_ctl initdb 

否则需要:

initdb -D /home/hadoop/pgsql/data

结果:

The files belonging to this database system will be owned by user "hadoop".
This user must also own the server process.

The database cluster will be initialized with locale "en_US.UTF-8".
The default database encoding has accordingly been set to "UTF8".
The default text search configuration will be set to "english".

Data page checksums are disabled.

fixing permissions on existing directory /home/hadoop/pgsql/data ... ok
creating subdirectories ... ok
selecting default max_connections ... 100
selecting default shared_buffers ... 128MB
selecting dynamic shared memory implementation ... posix
creating configuration files ... ok
creating template1 database in /home/hadoop/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
syncing data to disk ... 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:

    /home/hadoop/pgsql/bin/postgres -D /home/hadoop/pgsql/data
or
    /home/hadoop/pgsql/bin/pg_ctl -D /home/hadoop/pgsql/data -l logfile start

启动数据库实例 ,开启服务

mkdir /home/hadoop/pgsql/log-history  # 记录日志
pg_ctl -D /home/hadoop/pgsql/data -l /home/hadoop/pgsql/log-history/logfile start

关闭数据库实例

pg_ctl stop

开启远程连接

修改:

cd /home/hadoop/pgsql/data
vim pg_hba.conf # hba = host based authentication
# IPv4 local connections:
host    all             all             0.0.0.0/0               trust

为了打开PostgreSql Server的外部访问,需要向文件末尾添加内容。例如:假如我们安装PostgreSql Server的服务器IP地址是192.168.66.23,我们希望该子网内(即IP为192.168.66.*)所有计算机都能连接这台PostgreSql Server,并且都需要用户名/密码登录,则可以添加如下行:

host all all 192.168.66.1/24 md5

这个例子中,“192.168.66.1/24”表示允许所有IP为“192.168.66.”的计算机对服务器进行访问,“24”即IP的掩码有24个二进制的“1”,就是子网掩码的概念;例如,如果我们希望所有IP为“192.168.*.*”的计算机对服务器进行访问,则可以写为“192.168.1.1/16”。

第一个all表示允许访问所有数据库,第二个all表示允许所有用户名的用户登录;这两个域的设置可以参阅该文件前面长长的说明内容,本文不再赘述。

最后的md5表示用加密后的密码进行用户名/密码匹配的认证,这里的“用户名”是指数据库的用户,而不是操作系统的用户。常用的几种其他认证方式有ident(与操作系统的用户名做映射,采用操作系统的认证,数据库用户与操作系统用户之间的映射在pg_ident.conf文件中配置)、password(在网络传送明文密码认证,不安全)、trust(完全信任)、peer(取客户端操作系统的用户名,一般仅用来做本地连接)。

通常,采用数据库用户的用户名和密码进行认证,即md5。

继续修改:

vim postgresql.conf
listen_addresses = '*' # 修改该行为监听所有地址的请求

配置防火墙

su - root
vi /etc/sysconfig/iptables
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 5432 -j ACCEPT
service iptables restart

或者直接关闭:

/etc/init.d/iptables status
chkconfig iptables off   #永久关闭,重启生效
/etc/init.d/iptables stop #当前关闭

系统服务(用root权限):
复制postgresql安装目录下的linux文件到/etc/init.d/,进入postgresql 的安装目录(即刚刚使用tar命令解压的目录):

cd postgresql-9.4.1
cp contrib/start-scripts/linux /etc/init.d/postgresql
vim /etc/init.d/postgresql

修改如下:

# 修改prefix
prefix = /home/hadoop/pgsql

# 修改PGDATA
PGDATA="/home/hadoop/pgsql/data"

# 修改PGUSER
PGUSER=hadoop

# 修改PGLOG
PGLOG="$PGDATA/log-history"

添加执行权限:

chmod +x /etc/init.d/postgresql

这样,还可以通过系统命令开启和关闭postgresql服务(需要root权限):

/etc/init.d/postgresql start
/etc/init.d/postgresql stop

还可以配置如下设置:
让数据库开机启动

chkconfig --add postgresql
chkconfig postgresql on

创建数据库操作历史记录文件

touch /home/hadoop/pgsql/.pgsql_history
chown postgres:postgres /home/hadoop/pgsql/.pgsql_history

综上,搭建完成。

测试(切换到PGUSER用户下,这里是hadoop用户),创建一个新数据库,并打开:

createdb test
psql test
\l # 查看所有数据库
\q # 退出

下面配置PgAdmin。

使用psql命令行界面设置postgres用户的密码:

psql test
test=#ALTER USER hadoop with password ‘hadoop‘;
ALTER ROLE
postgres=#\q

上面test=#表示目前进入PostgreSql Server的是超级用户,否则是test=\形式。
这样,PostgreSql Server具备了一个超级用户hadoop,其密码是hadoop。可以从远程用各种客户端工具连接这台服务器了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值