postgresql 踩坑合集
此文收集笔者在postgresql踩过的坑合集
笔者环境:CentOS 8
使用docker 安装psql
1 安装
安装步骤随便百度一下就出来了。
笔者选用第三种方式快速启用一个postgresql进行测试。
生产环境建议直接离线/在线安装,因为之后扩展postgis/oracle_fdw/mysql_fdw等插件或者维护时会省下很多力气,相信我:),当然,若你不怕麻烦或者你只会用到基本的功能,docker是一个不错的选择。
-
docker 拉取镜像
docker pull postgresql
-
docker 创建数据卷volume
docker volume create dv_pgdata
ps: 创建数据卷
dv_pgdata
,用于存放psql的数据,在下一步运行psql容器时将会关联此数据卷。 -
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 验证是否安装成功
-
docker里需进入到容器bash中:
docker exec -it xxx bash
此处
xxx
是容器id的一部分或全部。 -
登入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运行容器时发生的小错误:密码其实并没有建成功(知晓缘由的大佬请帮忙指出)。
所以解决办法就很简单。
-
在虚机中登入docker psql容器的bash
-
登入psql
-
执行更改密码语句:
alter role postgres with password 'postgres';
- 这时使用宿主机navicat就可以连接了。。。
--------------------------------------- 持续更新----------------------------------------
下次空了更新以下内容:
- centos离线安装oracle_fdw,以及fdw的使用技巧;
- docker 部署web版pgadmin的方法。
看到这里的大佬们,顺手给个赞呗,么么:)