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

依赖工具库

注意:html

默认用户名是postgres linux

如下命令是Ubuntu操做系统中的命令sql

make数据库

GCCubuntu

Zlibvim

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

readline dom

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

安装

1.下载postgresqlsocket

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

2.解压文件:post

  在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 特别详细,备查

 
十一、容许远程主机链接:
 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

相关文章
相关标签/搜索