首次使用postgresql如何配置?

2024-10-31 08:38:00
admin
原创
269
摘要:问题描述:我刚刚安装了 postgresql,并在安装过程中指定了密码 x。当我尝试执行createdb并指定任何密码时,我收到以下消息:createdb:无法连接到数据库 postgres:严重:用户密码验证失败也一样createuser。我应该如何开始?我可以将自己添加为数据库用户吗?解决方案 1:其他答...

问题描述:

我刚刚安装了 postgresql,并在安装过程中指定了密码 x。当我尝试执行createdb并指定任何密码时,我收到以下消息:

createdb:无法连接到数据库 postgres:严重:用户密码验证失败

也一样createuser

我应该如何开始?我可以将自己添加为数据库用户吗?


解决方案 1:

其他答案并不能完全让我满意。以下是在 Xubuntu 12.04.1 LTS 上对 postgresql-9.1 起作用的方法。

  1. 使用用户 postgres 连接到默认数据库:

sudo -u postgres psql 模板1

  1. 设置用户 postgres 的密码,然后退出 psql(Ctrl-D):

ALTER USER postgres 使用加密密码‘xxxxxxx’;

  1. 编辑pg_hba.conf文件:

sudo vim /etc/postgresql/9.1/main/pg_hba.conf

并将涉及 postgres 的行中的“peer”更改为“md5”:

本地所有     postgres     对等md5

要知道您正在运行哪个版本的 postgresql,请查找 下的版本文件夹/etc/postgresql。此外,您可以使用 Nano 或其他编辑器代替 VIM。

  1. 重新启动数据库:

sudo /etc/init.d/postgresql 重启

(在这里您可以检查它是否可以使用psql -U postgres)。

  1. 创建一个与您同名的用户(要找到它,您可以输入whoami):

sudo 创建用户-U postgres-d-e-E-l-P-r-s<my_name>

这些选项告诉 postgresql 创建一个可以登录、创建数据库、创建新角色、是超级用户并拥有加密密码的用户。真正重要的是 -P -E,这样会要求您输入将要加密的密码,以及 -d,这样您就可以执行createdb.

注意密码:它会先询问您两次新密码(对于新用户),重复一次,然后询问一次 postgres 密码(在步骤 2 中指定的密码)。

  1. 再次编辑pg_hba.conf文件(参见上面的步骤 3),并在涉及“所有”其他用户的行中将“peer”更改为“md5”:

本地 全部     全部     对等体md5

  1. 重新启动(类似步骤 4),并检查您是否可以在没有 -U postgres 的情况下登录:

psql 模板1

请注意,如果您仅仅执行psql,它将会失败,因为它将尝试将您连接到具有与您相同名称的默认数据库(即whoami)。template1 是从一开始就存在的管理数据库。

  1. 现在createdb <dbname>就可以工作了。

解决方案 2:

在 Linux 下,PostgresQL 通常配置为允许 root 用户postgres从 shell(控制台或 ssh)以 postgres 超级用户身份登录。

$ psql -U postgres

然后你就可以像平常一样创建一个新的数据库:

CREATE ROLE myuser LOGIN password 'secret';
CREATE DATABASE mydatabase ENCODING 'UTF8' OWNER myuser;

这应该无需接触即可工作pg_hba.conf。如果您希望能够使用网络上的某些 GUI 工具来执行此操作 - 那么您需要处理pg_hba.conf

解决方案 3:

您可以使用两种方法。两者都需要创建用户数据库。

  1. 使用 createuser 和createdb

$ sudo -u postgres createuser --superuser $USER
$ createdb mydatabase
$ psql -d mydatabase
  1. 使用 SQL 管理命令并通过 TCP 使用密码连接

$ sudo -u postgres psql postgres

然后在 psql shell 中

CREATE ROLE myuser LOGIN PASSWORD 'mypass';
CREATE DATABASE mydatabase WITH OWNER = myuser;

然后你就可以登录了,

$ psql -h localhost -d mydatabase -U myuser -p <port>

如果你不知道端口号,你可以以用户身份运行以下命令来获取端口号postgres

SHOW port;

或者,

$ grep "port =" /etc/postgresql/*/main/postgresql.conf

旁注:postgres用户

我建议不要修改postgres用户。

  1. 它通常被操作系统锁定。任何人都不能以 的身份“登录”操作系统postgres。您应该拥有 root 权限才能以 的身份进行身份验证postgres

  2. 它通常不受密码保护,并委托给主机操作系统。这是件好事。这通常意味着,为了以与postgresSQL Server 相当的 PostgreSQL身份登录SA,您必须拥有对底层数据文件的写访问权限。而且,这意味着您通常可以造成破坏。

  3. 通过禁用此功能,您可以消除通过指定超级用户进行暴力攻击的风险。隐藏和模糊超级用户的名称有好处。

解决方案 4:

这是我的解决方案:

su root
su postgres
psql

解决方案 5:

编辑:警告:请阅读Evan Carroll发布的答案。看来此解决方案不安全,不推荐。

这在标准Ubuntu 14.04 64 位安装中对我来说是有效的。

我按照http://suite.opengeo.org/4.1/dataadmin/pgGettingStarted/firstconnect.html中的说明进行操作,并做了一些小修改

  1. 安装 postgreSQL(如果您的机器上还没有):

sudo apt-get install postgresql

  1. 使用 postgres 用户运行psql

sudo –u postgres psql postgres

  1. 为 postgres 用户设置新密码:

password postgres

  1. 退出 psql

q

  1. 编辑/etc/postgresql/9.3/main/pg_hba.conf并更改:

`#Database administrative login by Unix domain socket
local all postgres peer`

到:

`#Database administrative login by Unix domain socket
local all postgres md5`

  1. 重新启动postgreSQL:

sudo service postgresql restart

  1. 创建新数据库

sudo –u postgres createdb mytestdb

  1. 再次使用 postgres 用户运行 psql:

psql –U postgres –W

  1. 列出现有的数据库(您的新数据库现在应该在那里):

l

解决方案 6:

在 MacOS 中,我按照以下步骤使其工作。

首次安装后,获取系统的用户名。

$ cd ~
$ pwd
/Users/someuser
$ psql -d postgres -U someuser

现在您已经登录系统,可以创建数据库了。

postgres=# create database mydb;
CREATE DATABASE
postgres=# create user myuser with encrypted password 'pass123';
CREATE ROLE
postgres=# grant all privileges on database mydb to myuser;
GRANT

解决方案 7:

如果您像我一样运行 macOS,则可能没有 postgres 用户。

当我尝试运行时,sudo -u postgres psql我收到错误sudo: unknown user: postgres

幸运的是,postgres 提供了可执行文件。

createuser -D /var/postgres/var-10-local --superuser --username=nick
createdb --owner=nick

然后我就可以psql顺利访问了。

psql
psql (10.2)
Type "help" for help.

nick=#

如果您要从头开始创建新的 postgres 实例,请按照以下步骤操作。我使用了非默认端口,以便可以运行两个实例。

mkdir /var/postgres/var-10-local
pg_ctl init -D /var/postgres/var-10-local

然后我/var/postgres/var-10-local/postgresql.conf使用我喜欢的端口 5433 进行编辑。

/Applications/Postgres.app/Contents/Versions/10/bin/postgres -D /Users/nick/Library/Application Support/Postgres/var-10-local -p 5433

createuser -D /var/postgres/var-10-local --superuser --username=nick --port=5433
createdb --owner=nick --port=5433

完毕!

解决方案 8:

Note: textdb is the database which you are going to explore with 'alex' user 

root@kalilinux:~# sudo su - postgres 
postgres=#  psql   
postgres=#  create database testdb;
postgres=#  create user alex with password 'alex';
postgres=# GRANT ALL PRIVILEGES ON DATABASE testdb TO alex;`enter code here`

解决方案 9:

您可能需要更新pg_hba.conf文件。此文件控制哪些用户可以从哪些 IP 地址登录。我认为默认情况下 postgres 用户是相当锁定的。

解决方案 10:

就我而言,我第一次不知道如何进入 postgresql,在最近安装的 Ubuntu 22.04 中,对于我来说,该命令sudo -u postgres psql有效。

導播

解决方案 11:

安装 PostgresSQL版本 16后,步骤如下。

要检查服务器状态:

sudo systemctl status postgresql

如果您使用pgAdmin之类的工具,则必须为 postgres 用户设置密码。为此,请以postgres用户身份登录。

sudo -u postgres psql

为 postgres 用户设置密码

password postgres

此命令中的 postgres 是用户名而不是密码。然后它会提示Enter new password for user "postgres":

终于q退出了。

解决方案 12:

以下命令帮助我设置安装后的数据库

ubuntu@server1:~$ sudo -i -u postgres
postgres@server1:~$ 
postgres@server1:~$ 
postgres@server1:~$ psql
psql (12.18 (Ubuntu 12.18-0ubuntu0.20.04.1))
Type "help" for help.

postgres=# create database db1;
postgres=# create user user1 with encrypted password 'pass123';
CREATE ROLE
postgres=# grant all privileges on database db1 to user1;
GRANT

解决方案 13:

只需浏览到您的安装目录并执行此文件“pg_env.bat”,然后转到 bin 文件夹并执行 pgAdmin.exe。毫无疑问,这一定会起作用!

相关推荐
  政府信创国产化的10大政策解读一、信创国产化的背景与意义信创国产化,即信息技术应用创新国产化,是当前中国信息技术领域的一个重要发展方向。其核心在于通过自主研发和创新,实现信息技术应用的自主可控,减少对外部技术的依赖,并规避潜在的技术制裁和风险。随着全球信息技术竞争的加剧,以及某些国家对中国在科技领域的打压,信创国产化显...
工程项目管理   4062  
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   2781  
  本文介绍了以下10款项目管理软件工具:禅道项目管理软件、Freshdesk、ClickUp、nTask、Hubstaff、Plutio、Productive、Targa、Bonsai、Wrike。在当今快速变化的商业环境中,项目管理已成为企业成功的关键因素之一。然而,许多企业在项目管理过程中面临着诸多痛点,如任务分配不...
项目管理系统   101  
  本文介绍了以下10款项目管理软件工具:禅道项目管理软件、Monday、TeamGantt、Filestage、Chanty、Visor、Smartsheet、Productive、Quire、Planview。在当今快速变化的商业环境中,项目管理已成为企业成功的关键因素之一。然而,许多项目经理和团队在管理复杂项目时,常...
开源项目管理工具   118  
  本文介绍了以下10款项目管理软件工具:禅道项目管理软件、Smartsheet、GanttPRO、Backlog、Visor、ResourceGuru、Productive、Xebrio、Hive、Quire。在当今快节奏的商业环境中,项目管理已成为企业成功的关键因素之一。然而,许多企业在选择项目管理工具时常常面临困惑:...
项目管理系统   103  
热门文章
项目管理软件有哪些?
曾咪二维码

扫码咨询,免费领取项目管理大礼包!

云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用