postgresql安装笔记

来源:互联网 发布:百度大数据用户画像 编辑:程序博客网 时间:2024/05/16 13:45
以下为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.postgres server.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
 
2) 修改密码
   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/psql mydb -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);
    
 
 
 
 
 
 
 
 
 
 
 
原创粉丝点击