一个tar包:pgsql_install.tar.bz2
- #!/bin/sh
- echo "安装pgsql_15.4"
- rm -rf /home/postgres/postgresql
- mysqldir="/home/postgres"
- mkdir -p $mysqldir
- cp /home/pgsql_install.tar.bz2 $mysqldir
- cd $mysqldir
-
- tar -jxvf pgsql_install.tar.bz2
-
- echo "解压pgsql_15.4源码包"
- tar zxvf postgresql-15.4.tar.gz
- mv postgresql-15.4 postgresql
-
- echo "下载pgsql_15.4依赖"
- rpm -ivh --force --nodeps *.rpm
-
- echo "编译的时候用来指定程序存放路径..."
- cd $mysqldir/postgresql
- ./configure --prefix=/home/postgres/postgresql
-
- echo "编译安装pgsql..."
- make && make install
-
- echo "创建用户和用户组"
- groupadd -g 2000 postgres
- useradd -g 2000 -u 2000 postgres
- id postgres
-
- echo "创建相关目录并授权"
- mkdir data log
- chown -R postgres.postgres $mysqldir/postgresql
-
- echo "设置环境变量"
- if grep -q "PGHOME=/home/postgres/postgresql" /etc/profile; then
- echo "存在pgsql的环境变量"
- else
- echo -e 'export PGHOME=/home/postgres/postgresql\nexport PGDATA=$PGHOME/data\nexport PGLIB=$PGHOME/lib\nexport LC_ALL=en_US.UTF8\nexport LANG=en_US.UTF8\nPATH=$PGHOME/bin:$PATH\nexport PATH' >> /etc/profile
- fi
-
- source /etc/profile
-
- echo "关闭防火墙"
- systemctl stop firewalld.service
- systemctl disable firewalld.service
- setenforce 0
-
- echo "解决退出问题"
- touch /home/postgres/.psql_history
- chown postgres:postgres /home/postgres/.psql_history
- chmod 700 /home/postgres/.psql_history
-
- echo "初始化"
- su - postgres <<EOF
- cd /home/postgres/postgresql/bin/
- initdb -D ../data/
- echo "修改postgresql.conf,监听所有地址"
- sed -i "s/#listen_addresses = 'localhost'/listen_addresses = '*'/g" /home/postgres/postgresql/data/postgresql.conf
- echo "修改pg_hba.conf,修改密码"
- echo 'host all all 0.0.0.0/0 md5' >> /home/postgres/postgresql/data/pg_hba.conf
- echo "重启数据库"
- pg_ctl -D /home/postgres/postgresql/data/ -l logfile start
- exit;
- EOF
-
- echo "修改初始化密码"
- psql -p 5432 -U postgres -d postgres <<EOF
- ALTER USER postgres WITH PASSWORD 'postgres';
- create user root with password 'Test~123';
- create database test with encoding='utf8' owner=root;
- EOF