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 directory
        Is 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=# \du
                                   List of roles
 Role 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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【QT】自定义代理类

目录 1 我们为什么要使用自定义代理类? 2 自定义代理类的基本设计要求 3 自定义代理的功能 4 基于QSpinBox的自定义代理类 5 自定义代理类的使用 1 我们为什么要使用自定义代理类? 传统的模型-视图框架可以让我们实现逻辑展示相分离,我们…

trino-435:dynamic catalog数据库存储代码实现

一、dynamic catalog数据库存储源码分析 dynamic catalog的实现主要涉及到两个类:CoordinatorDynamicCatalogManager、WorkerDynamicCatalogManager,这两个类的详细信息如下: 这两个类主要提供了对catalog的增删改查的方法。trino-435源码中…

C++补充内容--EasyX-UI界面

esay x 其他 地图打印(利用二维数组) 双缓冲 当我们绘制一张图 然后另一张图盖住前一张图的某个部分的时候 由于while的存在 会导致 两张图不停的闪烁 所以加入双缓冲可以解决这个问题 开启双缓冲 之后等待Flush或者End 才会进行图片的绘制 不然不会进行图片的绘制,这样就可…

docker拉取镜像提示 remote trust data does not exist for xxxxxx

1、How can I be sure that I am pulling a trusted image from docker 2、docker: you are not authorized to perform this operation: server returned 401. 以上两个问题可以试试以下解决办法 DOCKER_CONTENT_TRUSTfalse 本人是使用jenkins部署自己的项目到docker容器出现…

Linux基础——进程初识(二)

1. 对当前目录创建文件的理解 我们知道在创建一个文件时&#xff0c;它会被默认创建到当前目录下&#xff0c;那么它是如何知道当前目录的呢&#xff1f; 对于下面这样一段代码 #include <stdio.h> #include <unistd.h>int main() {fopen("tmp.txt", …

51单片机串行口相关知识

51单片机串行口相关知识 串行通信概念 计算机与外部通信方式就两种&#xff1a; 并行通信串行通信 两种通信方式的特点以及适用场景&#xff1a; 名称特点适用场景并行通信速度快&#xff0c;效率高&#xff0c;成本高适合短距离高速通信&#xff0c;如计算机内部各硬件之…

MySQL-DDL

DDL是数据定义语言&#xff0c;用来定义数据对象&#xff08;数据库&#xff0c;表&#xff0c;字段&#xff09; 数据库操作&#xff1a; 1.查询&#xff1a; 查询所有数据库&#xff1a;SHOW DATABASES; 查询当前数据库&#xff1a;SELECT DATABASE(); 2.创建&#xff1a; C…

性能分析与调优: Linux 使用 iperf3 进行TCP网络吞吐量测试

目录 一、实验 1.环境 2.TCP网络吞吐量的微观基准测试 二、问题 1.iperf参数有哪些 2.iperf如何二进制安装 一、实验 1.环境 &#xff08;1&#xff09;主机 表1-1 主机 主机架构组件IP备注prometheus 监测 系统 prometheus、node_exporter 192.168.204.18grafana监测…

BLE Mesh蓝牙组网技术详细解析之Model Layer模型层(八)

目录 一、什么是BLE Mesh Model Layer模型层&#xff1f; 二、SIG Model 2.1 模型概念 2.2 消息格式 2.3 开关模型 四、资料获取 一、什么是BLE Mesh Model Layer模型层&#xff1f; Models Layer的作用是定义了一些通用的或特定的模型&#xff0c;用于实现网络节点设备…

UE5 VR版增强输入初体验 官方模板学习

问题 我们传统的输入方式&#xff0c;是通过编辑器设置输入操作映射&#xff0c;然后BindAction和BindAxis绑定 这边插播一条增强输入知识点&#xff0c;参考知乎大佬文章 和增强输入的VR模板教学&#xff1a;如何使用VR模板在UE5中使用增强输入系统_哔哩哔哩_bilibili 实践操…

Agilent安捷伦E4407B频谱分析仪26.5GHz

E4407B是安捷伦ESA-E系列频谱分析仪&#xff0c;它是一款能够适应未来需要的中性能频谱分析仪解决方案。该系列在测量速度、动态范围、精度和功率分辨能力上&#xff0c;都为类似价位的产品建立了性能标准。其灵活的平台设计使得研发、制造和现场服务工程师能够自定义产品&…

输电线路分布式故障诊断装置的应用-深圳鼎信

输电线路分布式故障诊断装置是一种利用分布式行波法实现故障定位的设备&#xff0c;它的应用场景、类型和功能特点如下&#xff1a; 一、应用场景 分布式故障定位装置适用于各种复杂环境的高压输电线路&#xff0c;例如三跨线路&#xff08;跨越铁路、一级及以上公路和重要输…

利用注解和反射处理方法级别的逻辑

1. 定义自定义注解 首先&#xff0c;我们定义一个自定义注解 MyAnnotation&#xff0c;用于标记需要特殊处理的方法。该注解具有一个 value 属性&#xff0c;表示方法的标识。 import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java…

Cannot resolve property ‘driverClassName‘

已解决 Cannot resolve property 错误 最近在学习spring时遇到了下面的问题&#xff1a; spring读取不到property的name属性&#xff0c;报红&#xff0c;编译不通过&#xff0c;上网查到了两种解决方案&#xff0c;如下&#xff1a; 1、重新加载spring文件就可以解决问题了&a…

机器学习-基于attention机制来实现对Image Caption图像描述实验

机器学习-基于attention机制来实现对Image Caption图像描述实验 实验目的 基于attention机制来实现对Image Caption图像描述 实验内容 1.了解一下RNN的Encoder-Decoder结构 在最原始的RNN结构中&#xff0c;输入序列和输出序列必须是严格等长的。但在机器翻译等任务中&…

计算机毕业设计-----SSM宠物商城带后台管理系统

项目介绍 该项目为前后台项目&#xff0c;分为普通用户与管理员两种角色&#xff0c;前台普通用户登录&#xff0c;后台管理员登录&#xff1b; 用户角色包含以下功能&#xff1a; 加入购物车,发表留言,提交订单,查看订单信息,会员注册,登录页面等功能。 管理员角色包含以下…

python爬虫,简单的requests的get请求,百度搜索实例

1、百度搜索实例 import requests url = https://www.baidu.com/s? # key_word = 迪丽热巴 key_word = input(输入搜索内容:) headers = {User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36 } …

DS|静态查找

题目一&#xff1a;DS静态查找 -- 顺序查找 题目描述&#xff1a; 给出一个队列和要查找的数值&#xff0c;找出数值在队列中的位置&#xff0c;队列位置从1开始 要求使用带哨兵的顺序查找算法 输入要求&#xff1a; 第一行输入n&#xff0c;表示队列有n个数据 第二行输入…

PySimpleGUI图形界面实例|PDF表格转换Excel文件

实例要求&#xff1a; 使用PySimpleGUI做一个把单位考勤系统导出的pdf文件合并输出Excel的应用&#xff0c;故事出自&#xff1a;https://hannyang.blog.csdn.net/article/details/135395946 当时时间紧&#xff0c;没有好好做界面且输出csv文件了事。今天趁周六休息&#xf…

linux中最常用的用户信息命令

文章目录 linux中最常用的用户信息命令还有谁 last语法一般使用方法查看最近登陆的三个用户省略hostname显示最后一列显示主机IP地址 我是谁 whoami谁&#xff1f;who默认使用系统的运行时间显示表头信息显示登录的人员及总数 什么&#xff1f;谁&#xff1f;w (who & what…