目录
所有安装包下载地址:
链接:https://pan.baidu.com/s/1pCsHXlHGS8I1h1A9jdsGPg
提取码:ilos
tar -zxvf postgresql-9.3.1.tar.gz -C /training
1:进入解压后的postgresql-9.3.1目录
cd /training/postgresql-9.3.1/
2:编译源码
[root@server2 tools]# cd /training/postgresql-9.3.1/
[root@server2 postgresql-9.3.1]# ./configure -prefix=/training/postgresql-9.3.1
1:安装gcc
cd /tools/gcc
[root@server2 gcc]# rpm -ivh *.rpm --nodeps --force
再次配置
[root@server2 postgresql-9.3.1]# ./configure -prefix=/training/postgresql-9.3.1
2:安装readline
下载地址:
http://rpmfind.net/linux/RPM/centos/6.10/x86_64/Packages/readline-devel-6.0-4.el6.x86_64.html
rpm -ivh readline-devel-6.0-4.el6.x86_64.rpm --nodeps --force
3:安装zlib-devel
1:下载地址
rpm -ivh zlib-devel-1.2.3-29.el6.x86_64.rpm --nodeps --force
http://rpmfind.net/linux/rpm2html/search.php?query=zlib-devel
2:再次配置
cd /training/postgresql-9.3.1
[root@server2 postgresql-9.3.1]# ./configure -prefix=/training/postgresql-9.3.1
会提示:checking for inflate in -lz... no
configure: error: zlib library not found
If you have zlib already installed, see config.log for details on the
failure. It is possible the compiler isn't looking in the proper directory.
3:安装zlib-devel
rpm -ivh zlib-devel-1.2.3-29.el6.x86_64.rpm --nodeps --force
4:配置成功
[root@server2 tools]# cd /training/postgresql-9.3.1/
[root@server2 postgresql-9.3.1]# ./configure -prefix=/training/postgresql-9.3.1
1:编译
make
2:编译安装
make install
安装完成
1:创建用户名和密码
1) 创建postgres用户
#useradd postgres
修改postgres密码
#passwd postgres
2:创建文件存放目录
[root@server2 postgresql-9.3.1]# mkdir -p /mnt/pgsql/data
[root@server2 postgresql-9.3.1]# chown -R postgres:postgres /mnt/pgsql
[root@server2 postgresql-9.3.1]# ll /mnt
[root@server2 postgresql-9.3.1]# chown -R postgres:postgres /mnt/pgsql/data
3:对数据进行初始化
进入安装目录
cd /training/postgresql-9.3.1
/training/postgresql-9.3.1/bin/initdb -D /mnt/pgsql/data -EUTF-8
su postgres
必须切换成root用户才可以完成初始化
/training/postgresql-9.3.1/bin/initdb -D /mnt/pgsql/data -EUTF-8
4:修改postgresql.conf 配置文件
配置任意客户端即可连接,开放端口:5432
vim /mnt/pgsql/data/postgresql.conf
5:修改pg_hba.conf 配置文件
修改后,其他远程客户端也可以进行连接,当然这里可以做一些配置,只允许指定IP地址访问也是可以的
vim /mnt/pgsql/data/pg_hba.conf
host all all 0.0.0.0/0 trust
6:设置PostgreSQL开机自启动(环境变量配置)
PostgreSQL的开机自启动脚本位于PostgreSQL源码目录的contrib/start-scripts路径下
1:进入目录
cd /training/postgresql-9.3.1/contrib/start-scripts
2:授予权限
chmod a+x linux
3:复制环境目录
复制linux文件到/etc/init.d目录下,更名为postgresql
cp linux /etc/init.d/postgresql
4:配置环境变量
修改/etc/init.d/postgresql文件的两个变量
vim /etc/init.d/postgresql
1:prefix设置为postgresql的安装路径:
prefix=/training/postgresql-9.3.1
2:PGDATA设置为postgresql的数据目录路径:
PGDATA="/mnt/pgsql/data"
3:日志文件路径
PGLOG="/mnt/pgsql/data/pgsql.log"
1:启动数据库
1:进入 postgres用户
su postgres
2:启动
/training/postgresql-9.3.1/bin/pg_ctl -D /mnt/pgsql/data/ -l /mnt/pgsql/data/pgsql.log start
2:查看进程
ps -ef | grep postgres
3:设置postgresql服务开机自启动
su postgres
chkconfig --add postgresql
七:数据库备份和导入导出(整库)
1:创建测试表
为了便于测试,在数据库中创建了一张表
CREATE TABLE test_0824(
ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL
);
2:数据库的备份
进入到安装目录的bin目录
cd /training/postgresql-9.3.1/bin/
进行备份
./pg_dump -h server2 -U postgres postgres> /data/dump.sql
备份完成后,进入到 /data目录,会找到dump.sql文件
3:数据库的还原
现在删除测试用表test_0824
1:进入postgresql的bin目录
cd /training/postgresql-9.3.1/bin
2:执行命令
./psql -h server2 -p 5432 postgres -W postgres
-h server2 服务器名称
-p 5432 postgresql端口号
postgres 默认
-W postgres 数据库名称
现在再看,表已经恢复
最后一步:进行授权
/* 修改用户权限 */
ALTER ROLE username WITH privileges;
/* 赋给用户表的所有权限 */
GRANT ALL ON tablename TO user;
/* 赋给用户数据库的所有权限 */
GRANT ALL PRIVILEGES ON DATABASE dbname TO dbuser;