您的位置:首页 > 数据库

源码 编译安装 postgresql

2016-05-07 00:00 447 查看
摘要: 最近因为一个应用软件选型时,考虑了mysql 和 postgresql 固安装试下效果

##################编译安装  postgresql  ################################
1. 基础环境 centos6.4 x64 最小化安装
yum install gcc
yum install readline-devel
yum install zlib-devel
yum install make
2. 编译安装
mkdir -p /opt/postgresql-8.4.1_bin
./configure --prefix=/opt/postgresql-8.4.1_bin
gmake
make install
#配置时可以根据个人需要选择是否需要python/perl 的模块  --with-python --with-perl
3. 编辑配置,配置环境变量
mkdir /data1
chown postgres:postgres /data1
vim /etc/profile
export PATH=$PATH:/opt/postgresql-8.4.1_bin/bin
export LD_LIBRARY_PATH=$PATH:/opt/postgresql-8.4.1_bin/lib
export PGDATA=/data1
4.建用户(管理员用户)
useradd postgres
passwd postgres
123456
5.初始化
su - postgres
initdb
6. 启动数据库
postgres -D /data1
or
pg_ctl -D /data1 -l logfile start
[postgres@hd-vm-pgs ~]$ pg_ctl -D /data1 -l postgre.log start
#建库
7. 创建一系统用户,作为数据库普通用户
passwd dbuser
passwd dbuser  /  1234567
8.设置管理员密码
su - postgres
postgres=# \password postgres
9. 创建普通数据库用户,并设置密码为dbuser123
postgres=# CREATE USER dbuser WITH PASSWORD 'dbuser123';
10. 创建数据库并指定所有者为 dbuser
postgres=# CREATE DATABASE dbuser OWNER dbuser;
11. 将数据库的所有权限都赋予 dbuser ,否则dbuser只能登录控制台,没有任何数据库操作权限。
postgres=# GRANT ALL PRIVILEGES ON DATABASE dbuser to dbuser;
12. 普通用户登录
su - dbuser
$psql -U dbuser dbuser
#这里由于我们的数据库名,用户名 都对应到了系统的用户名,可以省略
$psql
13,连接错误
[testuser@hd-vm-121 ~]$ psql -U dbuser -d dbuser -h 127.0.0.1 -p 5432
psql: FATAL:  Ident authentication failed for user "dbuser"
解决办法:vim /data1/pg_hba.conf
# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD
# "local" is for Unix domain socket connections only
local   all         all                               trust
# IPv4 local connections:
host    all         all         127.0.0.1/32          trust
# IPv6 local connections:
host    all         all         ::1/128               trust

METHOD指定如何处理客户端的认证。常用的有ident,md5,password,trust,reject。
14. 数据库基本操作
# 创建新表
CREATE TABLE user_tbl(name VARCHAR(20), signup_date DATE);
# 插入数据
INSERT INTO user_tbl(name, signup_date) VALUES('张三', '2013-12-22');
# 选择记录
SELECT * FROM user_tbl;
# 更新数据
UPDATE user_tbl set name = '李四' WHERE name = '张三';
# 删除记录
DELETE FROM user_tbl WHERE name = '李四' ;
# 添加栏位
ALTER TABLE user_tbl ADD email VARCHAR(40);
# 更新结构
ALTER TABLE user_tbl ALTER COLUMN signup_date SET NOT NULL;
# 更名栏位
ALTER TABLE user_tbl RENAME COLUMN signup_date TO signup;
# 删除栏位
ALTER TABLE user_tbl DROP COLUMN email;
# 表格更名
ALTER TABLE user_tbl RENAME TO backup_tbl;
# 删除表格
DROP TABLE IF EXISTS backup_tbl;

参考:http://www.ruanyifeng.com/blog/2013/12/getting_started_with_postgresql.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: