postgresql 踩坑合集

postgresql 踩坑合集

此文收集笔者在postgresql踩过的坑合集

笔者环境:CentOS 8

使用docker 安装psql

1 安装

安装步骤随便百度一下就出来了。

  1. linux在线安装postgresql
  2. linux离线安装postgresql
  3. linux利用docker启动docker

笔者选用第三种方式快速启用一个postgresql进行测试。

生产环境建议直接离线/在线安装,因为之后扩展postgis/oracle_fdw/mysql_fdw等插件或者维护时会省下很多力气,相信我:),当然,若你不怕麻烦或者你只会用到基本的功能,docker是一个不错的选择。

  1. docker 拉取镜像

    docker pull postgresql

  2. docker 创建数据卷volume

    docker volume create dv_pgdata

    ps: 创建数据卷dv_pgdata,用于存放psql的数据,在下一步运行psql容器时将会关联此数据卷。

  3. docker 运行容器

    docker run --name my_postgres -v dv_pgdata:/var/lib/postgresql/data -e POSTGRES_PASSWORD=postgres -p 5432:5432 -d postgres:latest

    注意,此步虽然设置了POSTGRES_PASSWORD但是实际上密码项上会有一点小问题,会面会列出。

2 验证是否安装成功

  1. docker里需进入到容器bash中:

    docker exec -it xxx bash

    此处xxx是容器id的一部分或全部。

  2. 登入pgsql:

    psql -U postgres

    或者先切换用户postgres:

    su - postgres

    再登入:

    psql

到此步基本都不会有什么问题。

3 连接报错:FATAL: password authentucation failed for user ‘xxx’

当选择用宿主机navicat连接此postgres时,报错:FATAL: password authentucation failed for user ‘xxx’。

网络是通的,密码用户也是新建的,可是却始终报此错误。

网上参考了一些解决办法:https://blog.csdn.net/weixin_33843947/article/details/85977379

实际上并没有啥用。

经排查其实是上一步docker运行容器时发生的小错误:密码其实并没有建成功(知晓缘由的大佬请帮忙指出)。

所以解决办法就很简单。

  1. 在虚机中登入docker psql容器的bash

  2. 登入psql

  3. 执行更改密码语句:alter role postgres with password 'postgres';

在这里插入图片描述

  1. 这时使用宿主机navicat就可以连接了。。。

--------------------------------------- 持续更新----------------------------------------

下次空了更新以下内容:

  1. centos离线安装oracle_fdw,以及fdw的使用技巧;
  2. docker 部署web版pgadmin的方法。

看到这里的大佬们,顺手给个赞呗,么么:)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值