Postgres

下载Postgres源码

tar xfj *.bz2 # tar -zxvf *.gz
# useradd -m postgres; passwd postgres;
sudo mkdir -p /opt/pgsql
sudo chown -R $USER /opt/pgsql

# yum install  readline-devel
./configure --prefix=/opt/pgsql && make -j 8 && make install

添加环境变量文件/opt/pgsql/env

export PGHOME=/opt/db/pgsql
export PGDATA=$PGHOME/data
export PGHOST=$PGDATA
export LD_LIBRARY_PATH=$PGHOME/lib

export PATH=$PGHOME/bin:$PATH

alias p0="pg_ctl stop"
alias p1="pg_ctl -l $PGDATA/log start"
alias pl="psql -l"
alias showpg="tail -20 $PGDATA/log"

多数据库切换shell函数

function switchdb() {
    if [ -z "$1" ]; then
        echo "用法: switchdb [ivorysql|pg|highgo]"
        echo "例如: switchdb pg"
        return 1
    fi

    case "$1" in
        ivorysql)
            source /opt/db/ivorysql/env
            echo "✅ 已切换到 IvorySQL 环境。"
            ;;
        pg)
            source /opt/db/pgsql/env
            echo "✅ 已切换到 PostgreSQL 环境。"
            ;;
        highgo)
            source /opt/db/highgosql/env
            echo "✅ 已切换到 HighGo 环境。"
            ;;
        *)
            echo "❌ 错误: 无效的参数 '$1'"
            echo "用法: switchdb [ivorysql|pg|highgo]"
            return 1
            ;;
    esac
}

启动数据库

initdb -D $PGDATA # initdb
pg_ctl -D $PGDATA -l $PGDATA/log start # p1
psql -p 5432 

修改pg_hba.conf配置

#最后一行添加,允许远程密码连接,若不需要密码最后一个参数改为trust
host        all        all        0.0.0.0/0        md5
# 若端口号有冲突使用netstat -anp | grep 5432
# pg_ctl reload重新读取pg_hba.conf文件

修改配置文件

edit $PGDATA/postgresql.conf
... set listen_addresses = '' ...
... set max_connections = 10 ...
... set max_wal_senders = 4 ...
... set unix_socket_directories = 'name of PGDATA directory' ...
p0 p1 # 重启数据库

创建、迁移数据库用户

postgres=# create user your_name with password 'password';
CREATE ROLE
-- ALTER your_name name with password 'newpassword'; 
-- ALTER TABLE your_table_name OWNER TO new_username;

HighgoDB

启动数据库

initdb -D $PGDATA
hg_sslkeygen.sh  -D $PGDATA
pg_ctl -D $PGDATA -l ~/logs/hg_0611 restart
psql -U sysdba -d highgo

IvorySQL

Github Release下载安装包

yum install bison flex;

El Psy Kongroo