• Ubuntu下postgresql安装及常见错误处理


    依赖工具库

    注意:

    默认用户名是postgres 

    以下命令是Ubuntu操作系统中的命令

    make

    GCC

    Zlib

    • 安装命令:sudo apt-get install zlib1g-dev
    • 注意有些软件包的名字无法确定,可以借助ubuntu software center来确定其有效名字,

    readline 

    •  安装命令:sudo apt-get install libreadline6 libreadline6-dev
    • 注意网上有的写安装readline-dev,这并不适用于Ubuntu系统,一定要找一下自己的操作系统安装readline的命令,不同的操作系统,命令是不一样的,要小心

    安装

    1.下载postgresql

    下载地址:https://www.postgresql.org/ftp/source/v11.0/

    2.解压文件:

      在zmy目录下执行:tar -zxvf postgresql-11.0.tar

    3.进入解压目录并配置参数

    进入解压目录:cd postgresql-11.0

    创建安装目录:sudo mkdir /opt/postgresql-11.0

    配置安装参数:./configure --prefix=/opt/postgresql-11.0

    注:

    --prefix 指定安装目录

    如果缺少readline,zlib,会报错,安装方法见依赖工具库

     

    4.编译并安装

    make & make install

    注:linux编译安装中configure、make和make install各自的作用 https://www.jianshu.com/p/c70afbbf5172

    5.创建用户组和用户,并设置密码(root不能执行pgsql的一些命令,所以一定要创建postgresql这个用户)

    sudo useradd -d /home/postgres -m postgres  #创建用户并为用户创建主目录,-m:自动建立用户的登入目录。

    passwd postgres  #为用户postgre设置密码

    注:创建用户时没有密码,登录时又提示输入密码,那就 sudo passwd 用户名,然后回车输入两遍密码就可以为新用户添加密码了

    6.创建数据库库文件存储目录并给postgresql用户赋予权限:

    进入数据库安装目录: cd /opt/postgresql-11.0

    创建data目录: sudo mkdir data

    给postgresql用户赋予权限:sudo chown postgres.postgres data

    7.切换用户:

    su postgres

    8.添加环境变量:

    export POSTGRESQL_HOME=/opt/postgresql-11.0
    export PGDATA=/opt/postgresql-11.0/data
    export PATH=$PATH:$POSTGRESQL_HOME/bin:$PGDATA
    #查看环境变量
    echo $POSTGRESQL_HOME

    echo $PGDATA
    echo $PATH  
    若环境变量出错,可执行
    export PATH=.:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/opt/postgresql-11.0/bin:/opt/postgresql-11.0/data

    9初始化数据库目录:

    初始化数据: initdb

    10.配置监听地址和端口:

    vi data/postgresql.conf
    修改为如下配置:
      listen_addresses = '*'
      port = 5432

    也就是将注释号"#"去掉,并把"localhost"改为"*"

     PostgreSQL.conf文件配置详解[转]https://www.cnblogs.com/kuang17/p/6902712.html 特别详细,备查

     
    11、允许远程主机连接:
     vi data/pg_hba.conf
    添加加如下配置
    host all all 0.0.0.0/0    trust

    12.启动数据库

    pg_ctl -l log/server.log start

    #关闭数据库  pg_ctl   stop  

    #重启数据库  pg_ctl restart

    注:

    -D data可以省略,系统会读取 PGDATA环境变量

    启动数据库时遇到的错误

    原因:修改pg_hba.conf出错

     

    13.创建并连接数据库

    createdb -h localhost stu
    psql -h localhost stu

    注:

    1. stu为数据库名,可以自己指定
    2. 连接数据库时,必须指定数据库名
    3. 创建数据库时遇到错误:“could not conoect to database template1: could not connect to server:connections on unix domain socket "/var/run/postgresql/.s.PGSQL.5432”
      •  解决方法:加上-h localhost这个选项

      • 可能是在pg_hba.conf中没有设置好本机访问
    4. 连接数据库时遇到“psql: FATAL: role "postgresql" does not exist”错误
      1. 解决方案:使用 “psql -U postgres [数据库名]” 登录
    5. 连接数据库时遇到“psql: FATAL: Peer authentication failed for user "postgres"错误 

    解决办法如下:

    1). 运行下面的命令编辑pg_hba.conf文件 sudo vim /etc/postgresql/9.1/main/pg_hba.conf

    2). 将

     # Database administrative login by Unix domain socket

    local     all      postgres       peer

    改为

    # Database administrative login by Unix domain socket

    local     all     postgres         trust

    3). 保存后执行下面的命令重新加载配置文件: sudo /etc/init.d/postgresql reload

     
  • 相关阅读:
    v-if和v-show的区别
    关于C语言静态链接的个人理解,欢迎指正
    关于C语言中的强符号、弱符号、强引用和弱引用的一些陋见,欢迎指正
    Android: ScrollView监听滑动到顶端和底端
    Android小记之--ClickableSpan
    Android小记之--android:listSelector
    表达式参数
    Http和Socket连接
    Hibernate: merge方法
    Android小代码——设置全屏
  • 原文地址:https://www.cnblogs.com/Pusteblume/p/10260278.html
Copyright © 2020-2023  润新知