正文

安装路径为 /usr/local/pgsql/

1、 解压-将源文件解压到一个临时目录/usr/local/installPackage

      gunzip postgresql-9.6.2.tar.gz

      tar xf postgresql-9.6.2.tar

2、 依次执行命令

      

cd  /usr/local/installPackage/postgresql-9.6.2

 

./configure --prefix=/usr/local/pgsql/   (指定安装目录)
make
make install
mkdir /usr/local/pgsql/data
chown postgres /usr/local/pgsql/data

su - postgres

/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data

/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data >logfile 2>&1 &

      ./configure是检查当前环境能否安装PG,以下是我遇到的报错和解决方案

      报错1:configure: error: no acceptable C compiler found in $PATH:

      解决:yum install gcc

      报错2:configure: error: readline library not found

      解决:yum install readline-devel

3、 启动或重启server

    * 先确保是切换到了/pgsql/bin目录下,并且切换Linux用户postgres

cd /usr/local/pgsql/bin/

su – postgres

./pg_ctl start -D /usr/local/pgsql/data

   重启server:

  ./pg_ctl restart -D /usr/local/pgsql/data

   停止 

  ./pg_ctl stop

4、 新建数据库和可以登录数据库的用户密码

       * 确保是在/usr/local/pgsql/bin/目录下

       创建数据库:    ./createdb mydb

       创建用户(如用户名为lin,密码为LinBug)有两种方式,

      1) CREATE USERCREATE ROLE:CREATE USER是CREATE ROLE的一个别名。 唯一的区别是CREATE USER命令                缺省是LOGIN, 而CREATE ROLE命令缺省是NOLOGIN。

           先进入默认的postgres数据库:     ./psql

         然后执行:

    CREATE USER lin WITH PASSWORD 'LinBug';

    2) pg封装的命令方式:

    ./createuser -P lin

         这会提示你输入新建用户的密码,重复输入密码后,创建成功

5、访问数据库

      * 确保在/usr/local/pgsql/bin/目录下,

      以默认用户名访问默认数据库(默认的用户名和数据库名都是postgres,不写-p就默认端口5432):

   ./psql -p 5432
   ./psql -p 5432  -h 127.0.0.1 -d postgres -U postgres

     以名为lin的角色登录名为mydb的数据库:

   ./psql mydb -U lin

6、远程访问数据库设置

 * 远程访问数据库的认证方式主要有很多方式,我只设置基于TCP/IP连接的trust认证方式

    需设置两个配置文件,

  1)修改配置文件postgresql.conf,

  vim /usr/local/pgsql/data/postgresql.conf

   修改监听地址:

 #listen_addresses=’localhost’
 #将上面这行改成如下
 listen_addresses=’*’

 2)修改配置文件/pgsql/data/pg_hba.conf:

 vim /usr/local/pgsql/data/pg_hba.conf 

   添加一条IP授权记录(如192.168.2.23),可以对一个网段授权

  # 这是在/pgsql/data/pg_hba.conf文件里加
  # IPv4 myhost connections:
  host    all         all         192.168.2.0/24          md5

    当然,可以设置所有网段IP可以访问:

  # 这是在/pgsql/data/pg_hba.conf文件里加
  # IPv4 remote address connections:
  host    all         all         0.0.0.0/0               md5

7、设置postgres用户的环境变量

     进入postgres的主目录

 #cd ~

     编辑~/.bash_profile文件

#vi ~/.bash_profile

     设置以下的环境变量     

export PGHOME=/opt/pgsql-9.1.7

export PGDATA=~/data

     保存,退出vi。执行以下命令,使环境变量生效

 #source ~/.bash_profile

8、设置开机启动

在pg的安装目录下的contrib/start-scriptslinux文件,将它拷贝一份到/etc/init.d目录下并重命名为postgresql

cp /usr/local/postgresql/postgresql-9.5.5/contrib/start-scripts/linux /etc/init.d/postgresql

修改脚本内容

# Installation prefix
prefix=/usr/local/pgsql

# Data directory
PGDATA="/usr/local/pgsql/data"

# Who to run the postmaster as, usually "postgres".  (NOT "root")
PGUSER=postgres

# Where to keep a log file
PGLOG="$PGDATA/serverlog"

然后为所有用户添加改脚本的可执行权限:

chmod a+x /etc/init.d/postgresql

最后通过chkconfig命令将该脚本注册为开机启动即可:

chkconfig --add postgresql

以后就可以通过系统服务启动了

service postgresql start

9、常用命令

     查询占用端口

                 netstat -a | grep PGSQL

     修改用户密码

         alter user postgres with password 'postgres';

                           密码postgres要用引号引起来

                           命令最后有分号

      备份数据库

                  ./pg_dump -p 5432 -U postgres -d postgres -F c -c -f /opt/xxx.backup

                  -F, --format=c|d|t|p         output file format (custom, directory, tar,导出文件的格式 plain text (default))

      恢复数据库

                ./pg_restore -p 5432  -h 127.0.0.1 -d postgres -U postgres < backup.backup

Logo

更多推荐