作者:A_2na轻奢主义总店访烟 | 来源:互联网 | 2014-05-28 15:41
注意:系统的时间需要调至到当前时间,否则在make的时候会出现死循环
在安装CentOS后,没有gcc文件,需要先安装。
将光光盘中的gcc开头的文件拷到root下,然后 r
注意:系统的时间需要调至到当前时间,否则在make的时候会出现死循环
在安装CentOS后,没有gcc文件,需要先安装。
将光光盘中的gcc开头的文件拷到root下,然后 rpm -ivh *.rpm
如果rpm -ivh *.rpm不管用,请操作下面的步骤
CentOS5.2系统安装在虚拟机上,编译gcc.
挂载CentOS的DVD系统光盘,然后进入CentOS目录内,安装顺序如下:
rpm -ihv kernel-headers-2.6.18-92.el5.i386.rpm
rpm -ivh glibc-headers-2.5-24.i386.rpm
rpm -ivh glibc-devel-2.5-24.i386.rpm
rpm -ivh libgomp-4.1.2-42.el5.i386.rpm
rpm -ivh gcc-4.1.2-42.el5.i386.rpm
rpm -ivh zlib-devel-1.2.3-3.i386.rpm
注意:必须先安装: kernel-headers-2.6.18-92.el5.i386.rpm 这个包,否则报错.
-------------------------------------------------------------------------------------
其中会提示少很多文件的错误,相关的文件全部在光盘里,找到后,再拷贝进去,再执行一样的命令,知道全部OK通过。同时make的时候,会提示缺少readline。。。。的错误,一样将光盘里的readline---的文件拷贝进来,然后安装。
这样make,install就可以使用了。
1、下载postgresql最新版:
http://www.postgresql.org/ftp/source/
2、解压文件:
tar zxvf postgresql-8.3.7.tar.gz
cd postgresql-8.3.7
1 添加用户 创建目录
useradd postgres -d /usr/local/pgsql
passwd postgres
mkdir /usr/local/pgsql/
mkdir /usr/local/pgsql/data
chown -R postgres /usr/local/pgsql
chown postgres /usr/local/pgsql/data
2 设置环境变量
vi /etc/profile
export
LD_LIBRARY_PATH=/usr/local/pgsql/lib:$LD_LIBRARY_PATH
export PATH=/usr/local/pgsql/bin:$PATH
export PGDATA=/usr/local/pgsql/data
export MANPATH=$MANPATH:/usr/local/pgsql/man
3 安装
./configure --prefix=/usr/local/pgsql
;make;make install
4 初始化数据库
su postgres
/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
9、配置监听地址和端口:
vi /usr/local/pgsql/data/postgresql.conf
取消以下两行的注释
listen_addresses = '*'
port = 5432
启动数据库
/usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data
然后再重新启动一个linux的窗口。在这个新窗口里进行如下操作。
任何目录下(需要用postgres用户登录)
createdb edm(创建数据库)
psql edm(进入数据库操作)
。。。。。。
10、允许远程连接:
vi /usr/local/pgsql/data/pg_hba.conf
添加
host all all 192.168.1.0/24 trust
每项的具体意思在配置文件中有详细说明
配置iptables让远程主机能访问:
vi /etc/sysconfig
添加
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp
--dport 5432 -j ACCEPT
service iptables restart
11、让postgresql数据库随系统启动而启动:
将启动脚本拷贝到/etc/init.d/目录下,具体执行如下命令:
cd /etc/rc.d/init.d
cp (第一步解压的安装文件目录)/postgresql-8.3.7/contrib/start-scripts/linux
postgresql
chmod +x postgresql
vi postgresql
prefix=/usr/local/pgsql
PGDATA="/usr/local/pgsql/data"
PGUSER=postgres
PGLOG="/var/log/pgsql.log"
chkconfig --add postgresql
启动数据库:
service postgresql start ????
12,创建数据库其它用户
要在postgres下登录
创建超级用户;
xiaop@localhost~$ createuser -P -d -a -e testuser
Enter password for new user: testuser
Enter it again: testuser
删除用户:
命令:dropuser [-i] [-h] [-p] [-e] 用户名 参数说明:
[ -i]:删除用户前,要求确认;
[-h 主机名]:删除某个主机上的Postgres用户;
[-p port]:与-h参数一同使用,指定主机的端口;
[-e]:将执行过程显示到Shell上。
3.2.1 删除本地的Postgres用户;
xiaop@localhost~$ dropuser testuser
13,创建一个属于其它用于的数据库
createdb lotus -O trancecore
不会的时候,记得看看--help
默认的情况下 postgres没有启动,所以只要使用,就要先启动哦
配置完毕 。
1、安装和启动
#rpm -qa | grep postgresql
其中可执行文件放在/usr/bin目录中,文档则放在/usr/share/doc/postgresql目录中,自动创建postgres帐号(管理帐号),其home目录为/var/lib/qpsql
2、设置postgresql
#passwd postgres
设置postgres密码
#cp .bashrc /var/lib/pqsql
#cp .bash_profile /var/lib/pgsql
#chown -R postgres:gostgres /var/lib/pgsql 设置文件属性
#su -postgres
$vi /var/lib/pgsql/.bash_profile
设置postgres数据库管理员环境变量
其中更改
USERNAME='postgres' 将root更改为postgres
PGLIB=/usr/lib/pgsql
设置环境变量PGLIB
PGDATA=/var/lib/pgsql
数据库文件的存放位置
$Export USERNAME ENV PATH PGLIB
PGDATA 导出环境变量
$source ~/.Bash_profile 使环境立即生效
$initdb
系统会生成一个名为template1的数据库,包含了存储整个数据库信息的系统表,生成其他数据库时的模板。
$postmaster &
$psql template1 测试数据库连接
template1=#
表明数据库连接正常
template1=# CREATE DATABASE ds; 建立测试数据库ds
CREATE DATABASE
template1=# c ds 连接测试数据库ds
You are now connected to database "ds".
ds=# CREATE TABLE bar(i int4,c char(16));
在ds数据库中建立测试表
CREATE TABLE
ds=# q 退出
3、数据库状态管理
#/etc/rc.d/init.d/postgresql stop 停止
#/etc/rc.d/init.d/postgresql restart 重新启动
4、用户管理
$createuser
-d 允许新增的用户创建数据库
-D禁止新增的用户创建数据库 -h host
指定主机名 -I userid
设置用户编号,可以直接设置成系统用户的UID -p port 指定连接的网络端口号
-a 允许新增的用户创建用户 -A 禁止新增的用户创建用户 username
指定用户名称
$createuser -i 500 -d -A aaa
将该用户的帐号设置为aaa,编号为500,可以新建数据库(-d),但不能新增用户(-A)
交互式创建用户
$createuser 直接输入命令createuser根据提示创建用户
$dropuser
-h 与-p的含义与createuser中的相同,参数-I表示删除前要求确认
$ dropuser aaa 删除用户aaa
5、数据库的管理与维护
createdb命令可以用来新增数据库,只有创建它的用户与数据库管理员(postgres)才有权将其删除
$createdb ds 创建数据库ds
$psql -l 显示系统中有几个数据库
$dropdb ds 删除数据库
PostgreSq充许将数据库保存保存在不同的目录内,使用initlocation命令可以创建新的数据库目录,但必须确保postgres帐号具有访问访目录的权限
$export PGDATA2=/var/lib/pgsql/db2
$initlocation $PGDATA2
注意:设置完后请重启postmaster,createdb后面参数-D所使用的环境变量不必加"$"符号
6、PostgreSQL数据库的安全性控制
1)、数据库文件保护,所有在数据库里存储的文件都受到保护,除了postgres超级用户外其他用户不能读取
2)、默认客户端只能通过本地的一个Linux Socket连接到数据库服务器,而不是通过TCP/IP
Socket,而且后端必须带-I选项启动才能让本地客户端连接上来
3)、可以通过在PG_DATA里的pg_hba.conf文件来限制可连接的客户端IP地址或用户名。
4)、客户端连接可以通过被外部软件包来认证
5)、Postgres里的每个用户都被赋予一个用户名和(可选 )口令,默认情况下,用户对不是自己创建的数据库没有写权限
6)、用户可以隶属于组,而且表的访问权限以组权限为基本设置
1、用户认证
认证是后端服务器和postmaster验证请求访问数据的用户的过程,所有激活postgres的用户都应对照pg_user表的内容进行检查以确认他们的权限,对用户身份的核对可以通过多种方式进行
一、从用户Shell登陆的用户
从用户shell启动的后端数据库服务器通过setuid调用把用户标识转为用户postgres之前要检查用户标识,不需要进行其它的认证。
二、从网络登陆的用户
用于Linux和TCP/IP SOCKET的认证方法
方法
功能
trust
无条件连接
reject
无条件拒绝连接
crypt
客户端向用户请求一个口令,该口令被加密后(使用crypt(3)发送,国情 pg_shadow表口令进行比较)
password