微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

postgresql安装笔记

以下为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
3. 自启动
复制源代码解压包下的contrib/start-scripts/linux至/etc/init.d/下,修改名字为postgres并改成可执行权限,以后可以使用
/etc/init.d/postgresql start 启动
4. 可以使用以下命令创建测试数据库
/usr/local/pgsql/bin/createdb test
/usr/local/pgsql/bin/psql test
5. 共享内存---信号量等设置
ipcs命令显示系统的ipc对象使用情况
Linux
在 2.2 内核里缺省的共享内存限制( SHMMAXSHMALL)都是 32 MB, 但是你可以在 proc 文件系统里修改这些值(不用重起)。 比如,要允许 128 MB:
$ echo 134217728 >/proc/sys/kernel/shmall
$ echo 134217728 >/proc/sys/kernel/shmmax
你可以把这些命令放到一个引导时运行的脚本中。
另外,如果你的系统里有的话,你可以使用 sysctl 来控制这些参数。 查找一个/etc/sysctl.conf文件,然后再它里面加下面这样的几行:
kernel.shmall = 134217728
kernel.shmmax = 134217728
通常在引导的时候会处理这个文件, 但你也可以稍后明确调用 sysctl
其他参数对任何应用来说都足够了。 如果你想自己查看,你可以看看下面几个文件/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网段可以连入
1)修改postgresql.conf 修改如下行:
listen_addresses = '*'
2)修改pg_hba.conf,添加如下行:
hostssl all all 192.168.0.1/24 trust
8. 给postgres添加一个口令
1) 进入命令方式
/usr/local/pgsql/bin/pgsql mydb
alter user postgres password 'yourpass' (认是md5的)
可以通过select * from pg_shadow表查看。
3) 修改pg_hba.conf文件
hostssl all all 192.168.0.1/24 md5
9. 使root用户在本地以postgres用户登录
1) 修改/usr/local/pgsql/data目录下的文件pg_hba.conf
local all all ident omicron
2) 修改/usr/local/pgsql/data目录下的文件pg_ident.conf 添加
omicron root postgres
3)重启/etc/init.d/postgresql restart
4)访问数据库时使用命令/usr/local/pgsql/bin/psqlmydb -U postgres
10. 系统表----系统表是关系型数据库存放结构元数据的地方, 比如表和字段,以及内部登记信息等。 Postgresql 的系统表就是普通表。 你可以删除然后重建这些表,增加列,插入和更新数值, 然后彻底把你的系统搞垮。 我们不应该手工修改系统表,通常总有 sql 命令可以做这些事情。
pg_database 里有两个有用的标志可以用于每个数据库: 字段 datistemplatedatallowconndatistemplate 表示该数据库是准备用做 CREATE DATABASE 的模板的。 如果设置了这个标志,那么该数据库可以由任何有 CREATEDB 权限的用户克隆;如果没有设置,那么只有超级用户和该数据库的所有者可以克隆它。 如果 datallowconn 为假,那么将不允许与该数据库发生任何新的连接(不过现有的会话不会因为把该标志设置为假而被杀死)。 template0 数据库通常被标记datallowconn = false 以避免对它的修改template0template1都应该总是标记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);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐