PostgreSQL使用源码安装配置
PostgreSQL使用源码安装配置
1 我的环境
[root@pgaa1 etc]# cat redhat-release
CentOS Linux release 7.4.1708 (Core)
服务器的环境最好能上网,不然不能用yum会是一个很抓狂的事。
2 下载源码
www.postgresql.org->download->source->选择合适的版本,我这里选的是9.6.6的版本
放到相应的服务器
3 编译选项
./configure –prefix=/usr/local/pgsql9.6.6 –with-perl –with-python –with-libxml
加这两个选项的目的是可以使用基于相应语言的
根据报错用yum把相应的包装上即可,pg依赖包有zlib,zlib-devel,readline,readline-devel,bison,flex,python,python-devel,perl,perl-devel,libxml2,libxml2-devel
其它报错可以用yum search搜索相应的包。
4 编译安装
make && make install
linux下源码安装包基本都这样
5 做目录链接
ln -sf /usr/local/pgsql9.6.6 /usr/local/pgsql
这样做的好处是,当新版本发布或需加新的编译选项时,只需要把现在的库停掉,然后把/usr/local/pgsql指向相应的版本即可完成升级,很方便。
6 安装后配置
1)新加一postgres用户,属组postgres
2)使用chown将/usr/local/pgsql9.6.6权限修改为postgres
chown -R postgres:postgres /usr/local/pgsql9.6.6
3)修改postgres环境变量
[postgres@pgaa1 ~]$ cat .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/.local/bin:$HOME/bin
export PATH=/usr/local/pgsql/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/pgsql/lib:$LD_LIBRARY_PATH
export PGDATA=/pgdata/pgaa
其中PGDATA指定是建数据库的数据目录。
7 初始化数据库
1)查看一下$PGDATA目录属主是postgres
2)执行初始化:
initdb
如果未设定PGDATA环境变量,可以如下:
initdb -D /opt/pgsql/data
8 启动服务
1)登陆到postgres用户
2)启动服务
pg_ctl -D /pgdata/pgaa -l logfile start
9 firewall调整放行5432端口
firewall-cmd –zone=public –add-port=5432/tcp –permanent #放行端口
firewall-cmd –reload #使配置生效
firewall-cmd –zone=public –list-ports #查看一下
10 创建用户
1)创建用户qiuyb,给login权限,并设定口令
postgres=#CREATE ROLE qiuyb login encrypted password ‘qiuyb’;
2)示例给qiuyb超级用户权限
postgres=#alter user qiuyb with superuser;
PostgreSQL使用角色的概念管理数据库访问权限。 根据角色自身的设置不同,一个角色可以看做是一个数据库用户,或者一组数据库用户。
角色的概念替换了”用户”和”组”。在PostgreSQL 版本 8.1 之前,用户和组是独立类型的记录,但现在它们只是角色。 任何角色都可以是一个用户、一个组、或者两者。
数据库角色从概念上与操作系统用户是完全无关的。
3)检查
postgres=# SELECT rolname FROM pg_roles;
rolname
———-
postgres
qiuyb
(2 行记录)
或
postgres=# \du
List of roles
Role name | Attributes | Member of
———–+————————————————————+———–
postgres | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
qiuyb | Superuser | {}
近期评论