我完成了一个小应用程序的开发,并尝试将其投入生产。我将应用程序复制到一个新文件夹,用一个新用户创建了一个新的psql数据库,调整了my database.yml文件,并尝试运行rake db:schema:load以使我的数据库处于正确的状态。Rake能够连接到my db,因为第一步是执行的,但是在执行这些步骤之后,它会中止,并显示以下消息。谷歌告诉我,这应该是用户的问题。然而,由于rake可以执行第一步,我怀疑我对它有什么问题。
[root@l1vmgt08 web_qip_parser_v2]# rake db:schema:load
-- enable_extension("plpgsql")
-> 0.0171s
-- create_table("qip_changes", {:force=>:cascade})
-> 0.0919s
-- create_table("users", {:force=>:cascade})
-> 0.0989s
-- add_foreign_key("qip_changes", "users")
-> 0.0042s
-- enable_extension("plpgsql")
rake aborted!
ActiveRecord::NoDatabaseError: FATAL: role "root" does not exist
config/database.yml:
default: &default
adapter: postgresql
encoding: unicode
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
development:
<<: *default
database: my_db_name
username: my_user_name
password: my_password
host: localhost
port: 5432
test:
<<: *default
database: my_db_name
production:
<<: *default
database: my_db_name
username: my_user_name
password: my_password
host: localhost
port: 5432
我的Dev和新Prod用户的psql输出,用于权限比较:
postgres=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
------------------------+-------------------+----------+-------------+-------------+--------------------------------
my_dev_user_name | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =Tc/postgres +
| | | | | postgres=CTc/postgres +
| | | | | my_dev_db_name=CTc/postgres
my_user_name | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =Tc/postgres +
| | | | | postgres=CTc/postgres +
| | | | | my_db_name=CTc/postgres
因此,在我看来,我正试图使用本地用户通过UNIX套接字进行连接。我找到了一些描述这个问题的文章。当我通过TCP/IP连接时,通过简单地将“host:localhost”添加到我的database.yml文件中,应该可以解决这个问题。然而,这正是我所做的,所以我不知道如何继续
我的pg_hba.conf:
# TYPE DATABASE USER ADDRESS METHOD
local all all peer
host all all 127.0.0.1/32 md5
服务器上运行着另一个应用程序,可以正常工作。它具有与我相同的database.yml配置集。
可能是由于缺少测试环境的username
语句而发生的。请看这个问题
我最近安装了Ubuntu的最新版本,还不习惯。我在连接PostgreSQL和PGADMIN3时遇到了几个问题。 我找不到,在这一点上,我太害怕尝试追随任何其他帖子而使事情变得更糟。 我怎么才能让这件事成功呢?
我是个新手。 我为Mac安装了Postgres.App。我在玩psql命令时不小心丢失了postgres数据库。我不知道里面是什么。 我目前正在编写一个教程:http://www.rosslaird.com/blog/building-a-project-with-mezzanine/ 而且我被困在 错误消息: 那么我应该采取哪些步骤呢?删除一个与psql相关的所有内容并重新安装所有内容? 谢谢你
我是新来postgres和面临的困难,在连接到数据库后服务器重启。我在一个OS用户测试下创建了一个数据库pgdb。服务器重启后,我通过发出命令重新启动pgsql 启动postgreql-9.6服务:[OK] 如果我只是发出psql,我会被带到psql提示符,但是这里的数据路径与我之前设置的不同。当我尝试以postgres用户的身份连接到pgdb时,我得到错误: psql: FATAL:数据库"pg
我是一个新的postgres和面临困难连接到数据库后,服务器重新启动。我已经在一个OS用户测试下创建了一个数据库pgdb。服务器重新启动后,我通过发出以下命令重新启动pgsql PSQL:致命:角色“测试”不存在 请建议
为什么IntelliJ不使用我的配置中指定的角色,而要使用我的个人登录??不管我用什么角色,还是犯了同样的错误。 注意:如果我添加我的系统用户名作为角色,它可以工作,但我更愿意避免这一点。
我正在设置我的PostgreSQL 9.1。我不能用PostgreSQL做任何事情:can't,can't;所有操作都返回错误消息 是我的帐户名,并且我在此帐户下PostgreSQL 9.1。 类似的错误对于帐户仍然存在。