zoukankan      html  css  js  c++  java
  • linux 安装PostgreSQL12

    一、安装步骤

    1、设置保存安装包的目录

    # cd /usr/local/src

    2、开始下载源包

    # wget https://ftp.postgresql.org/pub/source/v12.1/postgresql-12.1.tar.gz      (https://www.postgresql.org/ftp/source/ 这里是官网资源)

    3、解压

    # tar zxvf postgresql-12.1.tar.gz

    4、移动位置/usr/local/pgsql/postgresql-12.1

    # mv postgresql-12.1 /usr/local/pgsql/postgresql-12.1

    6、进入移动后的目录

    # cd /usr/local/pgsql/postgresql-12.1

    8、配置选项生成Makefile,默认安装到目录/usr/local/pgsql/postgresql-12.1

    # ./configure            (如果要安装到自定义目录,这里修改为  # ./configure --prefix= /usr/local/pgsql  红字部分是你的自定义路径)

    9、echo 一下返回是否为0, 0表示无错误

    # echo $?
    130

    10、发现没有相关包依次安装

    # yum install -y bison
    # yum install -y flex
    # yum install -y readline-devel (https://www.linuxidc.com/Linux/2012-02/53982.htm 这里有解释为什么安装这个)
    # yum install -y zlib-devel

    11、编译

    # make (编译后再echo $? 如果为0 就可以安装了)

    12、安装

    # make install

    13、创建,添加postgres 用户到 postgres组

    # groupadd postgres                             (创建组:postgres )
    # useradd -g postgres postgres            (命令解释:useradd -g 用户组 用户 ) 

    # mkdir -p /usr/local/pgsql/data             (创建一个data 目录)
    # chown postgres /usr/local/pgsql/data ( 改变data的权限为postgres用户)
    # su - postgres                                       ( 切换操作用户为 postgres)

    14、初始化数据库

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

    (提示:初始化数据库的操作为: ./initdb -D /usr/local/pgsql/data initdb把用户指定的选项转换成对应的参数,通过外部程序调用的方式执行postgres程序。

    postgres程序在这种方式下将进入bootstrap模式创建数据集簇,并读取后端接口postgres.bki文件来创建模板数据库。)

    15、启动数据库

    $ /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data/ -l logfile start(启动数据库)

     /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data/ stop                (停止数据库)

     /usr/local/pgsql/bin/pg_ctl restart -D /usr/local/pgsql/data/ -m fast (重启数据库)

    二、postgreSQL配置

    1、修改postgresql.conf,修改主要的配置参数。

    修改前可以先备份一下

    $ cp postgresql.conf postgresql.conf_bak

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

    修改listen_addresses = '*'    前面的#号需要去掉(按/键输入listen_addresses可以快速查找该行。)默认参数是‘localhost‘ 只监听本机IP修改为’*‘后,

    可以让远端的其它设备访问 。另外没有vim 可以使用# yum install -y vim 安装vim文本编辑工具。

    2、修改postgresql.conf,修改数据库的访问权限。

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

    添加以下,表示主机所有IP都可以访问。

    host            all             all               0.0.0.0/0           trust

    3、添加环境变量

    $ su                             (输入密码后切换为root管理员)

    # cd /home/postgres   (之前我们创建了一个postgres的用户所以这里有这个目录)

    # vim .bash_profile   

    添加

    export PGHOME=/usr/local/pgsql

    export PGDATA=/usr/local/pgsql/data

    PATH=$PATH:$HOME/bin:$PGHOME/bin

    # source .bash_profile (使修改生效)

    4、设置开机自启动

    # cd /usr/local/pgsql/postgresql-12.1/contrib/start-scripts (这里有个文件名叫linux的文件,它是linux系统的启动脚本)

     由于这个文件权限没有设置为X可以执行权限,我们需要设置它为可运行。

    # chmod a+x linux

    # cp linux /etc/init.d/postgresql   (复制linux文件到/etc/init.d目录下,并更名postgresql)

    # vim linux /etc/init.d/postgresql

    查看

    prefix=/usr/local/pgsql    (安装程序的文件路径)

    PGDATA="/usr/local/pgsql/data" (数据存放目录)

    如果和自己的路径一致就不需要修改了,按ESC键 ,然后:q退出编辑。

    # chkconfig --add postgresql (添加开机启动项目)

    # chkconfig  (看下是否设置成功)

    4、设置系统配置,开放默认的5432端口

    如果CentOS6 使用iptables执行以下步骤。

    # vim /etc/sysconfig/iptables

     添加

    -A INPUT -p tcp -m tcp --dport 5432 -j ACCEPT    

    # cd /etc/init.d/iptables restart (重启服务)

    如果CentOS7 有使用firewall防火墙执行以下步骤。

    # firewall-cmd --zone=public --list-ports

    # firewall-cmd --zone=public --add-port=5432/tcp --permanent  (添加5432端口)

    # firewall-cmd --reload  (重启防火墙)

    5、启动服务

    # service postgresql start

     

    6、查看PostgreSQL服务

    # ps -ef | grep postgres

    7、设置默认密码

    PostgreSQL安装后会自动创建一个用户,名为postgres

    # su - postgres  (默认密码为空,切换到postgres用户)

    # psql -U postgres  

    postgres=#   ALTER USER postgres with encrypted password 'asd111'; (asd111密码自由设置)

    postgres=#   q (可退出)

    三、使用阿里云的5432端口打开

    1、选择-安全组-配置规则

     

     确定后就开放了5432端口了。

    2、使用pgAdmin连接数据库

    配置IP,5432端口,用户,密码:asd111 就可以连接了。

  • 相关阅读:
    python批量插入mysql数据库(性能相关)以及反引号的使用
    python if __name__=='__main__'的理解
    Django学习教程
    python xml文件解析
    对python的super方法的用法理解
    python魔术方法(__init__,__call__,被双下划线包围的方法)
    python进阶书籍 流畅的python
    关于json串的双引号和单引号
    maven 的使用
    学java的目的是大数据和人工智能,勿忘初心!
  • 原文地址:https://www.cnblogs.com/zhao907/p/15459110.html
Copyright © 2011-2022 走看看