密码验证失败,密码复杂

2024-02-29

我编写了一个 Python 脚本,它使用以下命令连接到本地 PostgreSQL 数据库psycopg2 2.6 and Python 2.7.8。连接设置和命令如下:

HOST = '127.0.0.1'
DATABASE_NAME = 'myappdatabase'
DATABASE_PORT = '5432'
DATABASE_USER = 'myappuser'
DATABASE_PASSWORD = 'secret'
DATABASE_TABLE = 'myappdata'

def _database_connection():
    conn_string = "host='{0}' dbname='{1}' port='{2}' user='{3}' \
        password='{4}'".format(HOST, DATABASE_NAME, DATABASE_PORT, \
        DATABASE_USER, DATABASE_PASSWORD)
    return psycopg2.connect(conn_string)

该脚本在安装了 PostgreSQL 9.4 的一台机器上运行没有问题。配置在sudo vi /etc/postgresql/9.4/main/pg_hba.conf没有修改,看起来像这样,没有注释:

local   all             postgres                                peer
local   all             all                                     peer
host    all             all             127.0.0.1/32            md5
host    all             all             ::1/128                 md5

我还可以使用成功连接到同一个数据库pgAdmin III.

问题

在具有相同设置的第二台计算机上,我无法通过脚本进行连接。出现以下错误:

psycopg2.OperationalError:致命:用户“myappuser”的密码身份验证失败
致命:用户“myappuser”的密码身份验证失败

唯一的不同之处这两台机器之间是数据库密码。所以我把它改成了一个简单的密码——然后,它成功了。所以我把它改回复杂的......而且它确实not再次工作。密码是这样的:

DATABASE_PASSWORD = 'zyx@12AA\w2'

所以我认为:“这太愚蠢了。这一定是我的错误。”因此,我将第一台机器上的数据库密码设置为与第二台机器上的相同。还有 Python 脚本fails.


在这种情况下,密码中的反斜杠被解释为转义字符。 Python 会处理反斜杠\w作为字面意思\即使它没有指定为原始字符串,因为\w不是有效的转义序列,但底层库也是解析转义序列 http://www.postgresql.org/docs/current/static/libpq-connect.html#LIBPQ-CONNSTRING,因此必须转义反斜杠(加倍)。

为了避免这种情况,请指定连接参数作为关键字参数 http://initd.org/psycopg/docs/module.html#psycopg2.connect反而:

psycopg2.connect(host=HOST,
                 database=DATABASE_NAME,
                 port=DATABASE_PORT,
                 user=DATABASE_USER,
                 password=DATABASE_PASSWORD)

这可以避免密码中特殊字符的问题。此外,密码中的单引号字符也会破坏连接字符串。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

密码验证失败,密码复杂 的相关文章

随机推荐

  • 为什么这个递归 lambda 函数不安全?

    这个问题来自lambda 函数可以递归吗 https stackoverflow com questions 14531993 can lambda functions be recursive The 接受的答案 https stacko
  • 如何在接口中表示枚举?

    我如何定义一个具有方法的接口Enum当枚举不能在接口中定义时作为参数 For an Enum不是引用类型 因此Objecttype 不能作为传入参数的类型 那怎么办呢 public enum MyEnum Hurr Durr public
  • 应用程序类“com.sun.xml.messaging.saaj.soap.SOAPPartImpl.:119”引发异常

    我正在尝试通过 Bluemix 部署 Java 应用程序 当我将其部署到本地时Liberty Server Liberty 16 0 0 2 它工作正常 我可以从SOAP client 但是当我在 Bluemix 上尝试时 它给了我这个错误
  • 当屏幕尺寸小于特定尺寸时隐藏 div 元素

    我有一个 div 元素 当浏览器的宽度小于或等于 1026px 时 我想隐藏它 这可以用CSS来做吗 media only screen and min width 1140px 如果用css无法实现 还有其他选择吗 额外信息 当 div
  • 如何隐藏 tkinter ttk.Notebook 小部件中的整个选项卡栏?

    如何隐藏 ttk Notebook 小部件中的选项卡栏 我不想隐藏属于选项卡的框架 我只想将标签栏从视线中删除 即使它不在屏幕顶部 出于多个目的 无论如何 全屏模式会很好 来自 tkinter ttk Style 的帮助 layout se
  • Spring 事务不工作 + JAX WS + JDBC

    我对这个问题有点恼火 让我们检查一下是否有人实现了类似的东西 我有一个 java 8 Web 应用程序 实现了 8 WS 其中一些 WS 通过 JDBCTemplate 进行插入和更新 由于性能需求 Hibernate 不是一个选择 如果执
  • 如何正确设置一个商店作为您的网络应用程序中的单个指针

    我有一家本土商店 有一个简单的身份映射 当我从中返回模型数组并将其绑定到控制器 模型 时 它反映了您的期望 当您第一次点击路线时 它会在模板中反映为 你会期望 但稍后 如果我获得相同的商店实例 它是单例 并将对象推送到 IdentityMa
  • Git:获取存储库中未提交行的总数

    有没有一个命令可以获取总数lines当前 git 存储库中已更改的内容 我想数数考虑分阶段和非分阶段 files 这是我能得到的最接近的 git diff cached shortstat 1 file changed 1 insertio
  • 如何在Android上读取Sim原始数据?

    有没有办法读取 Sim 卡的 原始 数据 类似于如何用SmsMessage读取原始数据这是Pdu 如需读取SIM卡相关信息 您需要电话管理器 API http developer android com reference android
  • Java java.util.logging.logger。使用数组对象作为参数

    java util logging Logger 类提供了使用这种语法的能力 int i 0 log log Level INFO int i 0 i 这将打印出 int i 0 不幸的是 当我有一个更大的值时 比如 9093 它会打印出
  • 为什么无法从命令行从 C:\SysWOW64 复制 DLL?

    我知道我所做的事情很奇怪 请不要担心 什么是正在发生然而 这绝对是疯狂的 如果我尝试从以下位置复制 DLL 文件C SysWOW32 从命令行使用copy在 Windows 7 64 位上 我实际上最终得到了其中的文件C System32
  • Clojure 和 Python 中的惰性无限序列

    以下是我能在 Clojure 和 Python 中找到的斐波那契数列的惰性无限序列的最佳实现 Clojure def fib seq lazy cat 0 1 map fib seq rest fib seq 示例用法 take 5 fib
  • 为什么活动存储记录id为空并且上传太慢

    我正在使用最新的 Rails 和 ruby 进行新项目 我正在使用Active Storage用于将文件 图像和视频 上传到GCP 当我上传大约 13 18 张图像的多个文件时 上传时间太长 当我在完成后检查我的数据库时 我的record
  • 从 jsp 中的下拉列表中选择值后替换并显示新页面

    我有一个仪表板 其中有多个下拉值 其中一个下拉值具有当被选择并单击提交按钮时的值 它将现有的页面设计替换为新的页面设计 谁能指导我如何使用 JSP 和 servlet 实现这一目标 我能想到的就是使用 JavaScript 并打开一个新窗口
  • 错误:android:exported 需要为元素显式指定

    我有这个错误 app src main AndroidManifest xml 27 9 33 20 错误 android exported 需要为元素 显式指定 面向 Android 12 及更高版本的应用需要指定显式值android e
  • 为什么 jquery fadeIn() 不能与 .html() 一起使用?

    当您单击复选框时 我希望消息慢慢淡入 为什么 fadeIn 在此示例中不起作用 HTML
  • iPhone/iPad 应用程序未出现在 iPad 应用程序商店中

    我们正在使用 xcode 4 5 2 开发我们的第一个 iPhone 和 iPad 应用程序 它是一款通用应用程序 目标设备系列为 iPhone iPad 在 iPhone 和 iPad 模拟器上运行良好 但分发给 Apple 后 它只出现
  • 在 Mac 上调整窗口大小时 JavaFX 崩溃

    我使用的 Mac 配备最新版本的 Java FX macOS 以及 IntelliJ IDEA CE 问题是 当我调整 JavaFX 窗口大小时 我的 Mac 立即崩溃 只有当我按下电源按钮五秒钟时 MacBook 才会重新启动 我创建了一
  • 有没有办法使用增量更新 SQLITE 数据库?

    我想知道 SQLite 是否提出了基于某些增量文件的更新机制 例如 Oracle 数据库可以与 sql 重做日志或快照日志同步 SQLite是否提出了一种优化机制来更新自身 我的用例如下 我有一个本地数据库 必须与一些远程数据同步 在理想的
  • 密码验证失败,密码复杂

    我编写了一个 Python 脚本 它使用以下命令连接到本地 PostgreSQL 数据库psycopg2 2 6 and Python 2 7 8 连接设置和命令如下 HOST 127 0 0 1 DATABASE NAME myappda