以下为redhat8.0上安装postgresql实录
1.下载8.0.1源代码包
2.installation
./configure
make
su
make install
adduser postgres
mkdir /usr/local/pgsql/data
chown postgres /usr/local/pgsql/data
su - postgres
/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
make
su
make install
adduser postgres
mkdir /usr/local/pgsql/data
chown postgres /usr/local/pgsql/data
su - postgres
/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
3.
自启动
/etc/init.d/postgresql start 启动
4.
可以使用以下命令创建测试数据库
5.
共享内存---信号量等设置
Linux
$
echo 134217728 >/proc/sys/kernel/shmall
$ echo 134217728 >/proc/sys/kernel/shmmax
$ echo 134217728 >/proc/sys/kernel/shmmax
你可以把这些命令放到一个引导时运行的脚本中。
kernel.shmall = 134217728
kernel.shmmax = 134217728
kernel.shmmax = 134217728
其他参数对任何应用来说都足够了。 如果你想自己查看,你可以看看下面几个文件:
/usr/src/linux/include/asm-xxx/shmparam.h 和
/usr/src/linux/include/linux/sem.h.
6.
使用SSL进行通讯(postgresql文档16.7)
1) 制作证书请求
openssl req -new -text -out server.req
2) 转化私钥文件为server.key
openssl rsa -in privkey.pem -out server.key
rm privkey.pem
3) 生成证书
openssl req -x509 -in server.req -text -key server.key -out server.crt
chmod og-rwx server.key
4) 把证书和密钥拷贝到系统使用他们的地方
cp..../server.crt /usr/local/pgsql/data
cp ..../server.key /usr/local/pgsql/data
cd /usr/local./pgsql/data
chown postgres.postgresserver.crt
chown postgres.postgres server.key
7.
让192.168.0.1/24网段可以连入
listen_addresses = '*'
hostssl all all 192.168.0.1/24 trust
1) 进入命令方式
2) 修改密码
alter user postgres password 'yourpass' (默认是md5的)
可以通过select * from pg_shadow表查看。
hostssl all all 192.168.0.1/24 md5
local all all ident omicron
omicron root postgres
3)重启/etc/init.d/postgresql restart
10. 系统表----系统表是关系型数据库存放结构元数据的地方, 比如表和字段,以及内部登记信息等。
Postgresql 的系统表就是普通表。 你可以删除然后重建这些表,增加列,插入和更新数值, 然后彻底把你的系统搞垮。 我们不应该手工修改系统表,通常总有 sql 命令可以做这些事情。
在
pg_database 里有两个有用的标志可以用于每个数据库: 字段
datistemplate 和
datallowconn。
datistemplate 表示该数据库是准备用做
CREATE DATABASE 的模板的。 如果设置了这个标志,那么该数据库可以由任何有
CREATEDB 权限的用户克隆;如果没有设置,那么只有超级用户和该数据库的所有者可以克隆它。 如果
datallowconn 为假,那么将不允许与该数据库发生任何新的连接(不过现有的会话不会因为把该标志设置为假而被杀死)。
template0 数据库通常被标记为
datallowconn = false 以避免对它的修改。
template0 和
template1都应该总是标记为
datistemplate = true。
修改标记使用语句:UPDATE pg_database SET datallowconn = true WHERE datname = 'template0';
11.
系统常用的sql命令
12. md5()散列函数
update operator set password='md5' || substring(md5('yourpass') from 1 for 20);