linux postgresql9.6安装

论坛 期权论坛 脚本     
匿名技术用户   2021-1-17 10:54   1204   0

正文

安装路径为 /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

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP