PostgreSQL的常见错误和解决方法

湖蓝几何球体LinkedIn Banner.png
转载说明:如果您喜欢这篇文章并打算转载它,请私信作者取得授权。感谢您喜爱本文,请文明转载,谢谢。


在学习新的东西时,会犯很多的错误,会遇到很多坑。我们在填坑与犯错中不断进步成长。
以下是在学习pgsql中,遇到的和给自己挖的坑。

1. 登录鉴权失败

报错日志:

INTERNAL SERVER ERROR: Unable to connect to server:connection to server at "10.0.0.66",port 5432 failed:FATAL:password authentication failed for user "portgres"

image.png

问题原因:

postgres用户权限验证失败,检查用户、密码是否输入错误或是否未给postgres设置密码

2. 远程连接白名单未开,登录失败

报错日志:

INTERNAL SERVER ERROR: Unable to connect to server:connection to server at "10.0.0.66",port 5432 failed:FATAL:no pg_hba.conf entry for host "192.168.0.8",user "postgres",database "portgres",no encryption

image.png

问题原因:

PostgreSQL数据库为了安全,它不会监听除本地以外的所有连接请求,当用户通过JDBC访问时,会报类似“FATAL:no pg_hba.conf entry for host”这样的异常。
在postgresql数据目录下的配置文件 pg_hba.conf中,找到“# IPv4 local connections:”在其下加上请求连接的机器IP,然后重启pgsql。
如:

host all all  0.0.0.0/0  md5   #这里是测试,配置的0.0.0.0/0,生产环境按需配置;md5表示密码验证方法,可以改为trust

image.png

3. 端口不通,远程登录失败

报错日志:

INTERNAL SERVER ERROR: Unable to connect to server:connection to server at "10.0.0.66",port 5432 failed:Connection refused(0x0000274D/10061) is the server running on that host and accepting TCP/IP connections?

image.png

问题原因1:

pgsql的5432端口默认只监听127.0.0.1,报这个错,是因为5432端口没有监听pgsql的IP 10.0.0.66,因此通过这个IP去连pgsql会报如上错误。
image.png
在pgsql的data目录下找到配置文件postgresql.conf,在大约第60行“#listen_addresses = ‘localhost’”后边,添加对服务器内网IP的监听,然后重启pgsql。
如:

listen_addresses = '10.0.0.66'  或者 listen_addresses = '*'

image.png

问题原因2:

如监听了IP,则检查是否开了防火墙。关闭防火墙或防火墙放行5432端口即可。

4. psql命令无法执行

报错日志:

命令行执行psql,报错

psql: error: connection to server on socket "/tmp/.s.PGSQL.5432" failed: No such file or directoryIs the server running locally and accepting connections on that socket?

image.png

问题原因:

检查pgsql应用和端口是否正确,如pgsql运行和5432端口运行OK,则检查环境变量是否设置错误

5. 用户错误,pgsql无法启动

报错日志:

启动pgsql报错:

[root@test66 system]# /home/finance/App/postgresql-14/bin/pg_ctl -D /home/finance/Data/pgsql -l logfile stop
pg_ctl: cannot be run as root
Please log in (using, e.g., "su") as the (unprivileged) user that will
own the server process.

image.png

问题原因:

如报错提示,pgsql不能使用root用户启动,su postgres 用postgres用户启动即可。

6. 用户删除失败

报错日志:

删除用户sre失败:

postgres=# drop user sre;
ERROR:  role "sre" cannot be dropped because some objects depend on it
DETAIL:  privileges for database sre
postgres=#

image.png

问题原因:

因为有一个sre库关联到了sre用户,而sre库在使用中。在删除用户之前,先确保其未关联任何database。

7. 用户授权失败

报错日志:

给用户授权失败:

postgres=# alter roles sre with Create DB;
ERROR:  syntax error at or near "roles"
LINE 1: alter roles sre with Create DB;^
postgres=#

image.png

问题原因:

虽然执行\du,看到的用户role有“Create DB”这个角色,但实际在给用户授权时,正确的拼写是“CREATEDB”,而不是“Create DB”。

postgres=# alter role sre with CREATEDB;
ALTER ROLE
postgres=# \duList of rolesRole name |                         Attributes                         | Member of 
-----------+------------------------------------------------------------+-----------postgres  | Superuser, Create role, Create DB, Replication, Bypass RLS | {}sre       | Create DB                                                  | {}
postgres=#

8. 数据导入失败

导入数据操作:

$ psql -U postgres -h 10.0.0.66 -p 5432 -d sonar -f /tmp/sonar.sql

报错日志1:

psql: error: connection to server at "10.0.0.66", port 5432 failed: FATAL:  database "sonar" does not exist

问题原因:

如报错,导入数据之前没有先创建database。

报错日志2:

psql:/tmp/sonar.sql:36: ERROR:  role "sonar" does not exist

问题原因:

因在原有的pg数据库里面,database sonar库是赋权给sonar用户的,而在新的pgsql里面,sonar库是用postgres用户创建的。没有sonar用户,也没有授权给sonar用户。

image.png

这种情况导入数据的正确步骤:

1)先创建用户和database,并把database授权给用户

postgres=# create database sonar;
postgres=# create user sonar with password 'sonar';
postgres=# GRANT ALL PRIVILEGES ON DATABASE sonar to sonar;

2)导入数据

$ psql -U postgres -h 10.0.0.66 -p 5432 -d sonar -f /tmp/sonar.sql

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/601409.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Pytorch详细安装过程

1、安装anaconda 官网(https://www.anaconda.com/products/distribution#Downloads)下载,使用管理员身份运行(不使用似乎也没事) 这里选择Just me(至于为啥,咱也不是很清楚) 更改路…

编程基础 - 初识shell

编程基础 - 初识shell 返回序言及专栏目录 文章目录 编程基础 - 初识shell前言一、Linux的路径1、绝对路径2、相对路径3、特殊路径 二、交互式工作1、先联系上shell2、交互式命令 三、执行脚本四、sh和bash的区别总结 前言 shell是Linux内核外的一层壳,是用户与Li…

大数据 MapReduce如何让数据完成一次旅行?

专栏上一期我们聊到MapReduce编程模型将大数据计算过程切分为Map和Reduce两个阶段,先复习一下,在Map阶段为每个数据块分配一个Map计算任务,然后将所有map输出的Key进行合并,相同的Key及其对应的Value发送给同一个Reduce任务去处理…

数据库设计-DDL

D D L \huge{DDL} DDL DDL:数据库定义语言,用来定义数据对象(数据库、表) 简单操作 首先在cmd中进行操作,登录数据库 show databases; -- 以列表的形式显示所有的数据库create database [if not exists] 数据库名称…

[C#]使用DlibDotNet人脸检测人脸68特征点识别人脸5特征点识别人脸对齐人脸比对FaceMesh

【官方框架地址】 https://github.com/takuya-takeuchi/DlibDotNet 【算法介绍】 DlibDotNet是一个开源的.NET库,用于实现机器学习和计算机视觉应用。它基于C库dlib,通过C/CLI封装了dlib的所有功能,为.NET开发者提供了简单易用的API。以下是…

Nacos 持久化及集群的搭建【微服务】

文章目录 一、统一配置管理二、微服务配置拉取三、配置热更新四、多环境共享配置五、Nacos 集群搭建1. 集群结构2. 初始化数据库3. 搭建集群 六、Nginx 反向代理七、启动项目测试 一、统一配置管理 案例练习的时候我们只有两个微服务,管理起来非常简单,但…

el-upload上传文件

需求:选中或拖拽文件后,使用http-request属性实现自动上传,并根据后端传回来的结果显示错误和控制fileList的显示,如果后端返回成功,则文件显示在文件列表处,如果后端返回失败,则文件列表不显示…

Qt/QML编程学习之心得:Timer的使用(22)

Qt中timer计时器如何使用? Timer的创建: void InitTimer(){myTimer = new QTimer(q);myTimer->setInterval(100); // 100msmyTimer->setSingleShot(true); //只运行一次的计时器QObject::connect(myTimer,SIGNAL(timeout()),q,SLOT(onTimeOut()));myTimer->start(…

Oracle分区表

文章目录 A. varchar2类型时间字段(20240102)分区实战1. 表要不要分区2. 将已经存在的表改造为分区表(时间字段,varchar2类型)3. 增加分区3.1 增加分区3.2 置换分区,不会复制索引,不要用这种语法建表,这是专门为置换分区用的3.3 分…

SonarQube 漏洞扫描

SonarQube 漏洞扫描 一、部署服务 1.1 docker方式部署 #安装docker curl -L download.beyourself.org.cn/shell-project/os/get-docker-latest.sh | sh yum install -y docker-compose #进去输入:set paste可以保证不穿行 [rootlocalhost sonar]# vim docker-compose.yml v…

java基于SSM的游戏商城的设计与实现论文

基于SSM的游戏商城的设计与实现 摘 要 当下,正处于信息化的时代,许多行业顺应时代的变化,结合使用计算机技术向数字化、信息化建设迈进。以前相关行业对于游戏信息的管理和控制,采用人工登记的方式保存相关数据,这种以…

【C++】内存对齐

本篇文章介绍C中的内存对齐,后续介绍C的union和C的variant的时候,需要用到这部分的知识。 占用内存 先回忆下C各个数据类型占用的内存大小: int:所占内存大小:4byte 32bit;char:所占内存大小…

x-cmd-mod | zuz - 压缩或解压文件

目录 简介首次用户子命令x zuz zx zuz uzx zuz uzrx zuz ls 相关链接 简介 zuz 为 x-cmd 中的必用模块之一,提供压缩与解压文件的功能。 x z 就是调用 x zuz z,可将目标文件压缩根据后缀名成指定格式,x uz 则可以解压任何格式的压缩包 首次…

四个模型建模及数据分析整理(基于Titanic数据集)

目录 介绍: 二、数据 2.1引用数据 2.2检查缺失数据 2.2.1手动检查缺失数据 2.2.2查看某一个特征值为空数据 2.3补充缺失数据 2.3.1盒图 2.3.2手动用均值填补缺失数据 2.3.3手动用类别填补缺失数据 三、数据分析 3.1男女生存比例 3.2男女生存数 3.3船舱级…

ROS学习笔记(11)进一步深入了解ROS第五步

0.前提 我在学习宾夕的ROS公开课的时候发现,外国的对计算机的教育和国内的是完全不一样的,当你接触了外国的课程后回头看自己学的会发现好像自己啥也没学。我这里可以放出来给大家看一下。 1.Python and C 2.Python PDB Tutorial:Python Deb…

PyTorch|构建自己的卷积神经网络

如何搭建网络,这在深度学习中非常重要。简单来讲,我们是要实现一个类,这个类中有属性和方法,能够进行计算。 一般来讲,使用PyTorch创建神经网络需要三步: 继承基类:nn.Module 定义层属性 实现…

动态规划(不同路径1,不同路径2,整数拆分)

62.不同路径 力扣题目链接(opens new window) 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。…

手机上连网络转接app,电脑连接手机,共用网络转接app的办法

方法一,(不推荐) 因为太简单了所以写一下 电脑安装MuMu模拟器,之后安装网络转接app,这个模拟器设置了从电脑上安装app和,安卓与电脑同步文件夹功能,实现文件共享。所以直接用就可以了。 方法二…

启动 Mac 时显示闪烁的问号

启动 Mac 时显示闪烁的问号 如果启动时在 Mac 屏幕上看到闪烁的问号,这意味着你的 Mac 无法找到自身的系统软件。 如果 Mac 启动时出现闪烁的问号且无法继续启动,请尝试以下步骤。 1.通过按住其电源按钮几秒钟来关闭 Mac。 2.按一下电源按钮&#xf…

你珍藏的那个表情包女孩,现在滤镜碎了一地。

♥ 为方便您进行讨论和分享,同时也为能带给您不一样的参与感。请您在阅读本文之前,点击一下“关注”,非常感谢您的支持! 文|猴哥聊娱乐 编辑|侯欢庭 七年前,一个年仅三岁的小女孩以其无邪的表情包风靡网络&#xff0…