Postgres& Rails - 致命:用户

时间:2015-11-09 23:26:36

标签: ruby-on-rails ruby database postgresql

新手到Postgres,使用Rails的基本技巧,所以请耐心等待。

我将解释我如何到达我的位置的过程,以防我在此过程中出现任何问题。

我做了什么。

我创建了一个Rails 5项目(使用实际的Git repo),一旦创建成功,我在 Gemfile 中找到了默认的gem sqlite3

现在,我想与Postgres合作,因此我将sqlite3转为pg,然后运行bundle install。工作得很好,Rails没有抱怨。

然后,我在我的计算机上安装了Postgres(使用最新的OS X)并运行createdb testDB。这是一个空数据库。

现在,我必须配置 database.yml 文件。在浏览了十几个链接和资源之后,我将文件的内容更改为以下内容:

default: &default
  adapter: postgresql
  database: testDB
  username: postgres
  password: password
  host: localhost
  port: 9057


development:
  <<: *default

test:
  <<: *default

production:
  <<: *default
  database: someOtherDB

我确定端口号是正确的,因为我手动设置它,我可以使用命令netstat -na检查它是否正在运行。我得到以下两行:

tcp6       0      0  *.9057                 *.*                    LISTEN     
tcp4       0      0  *.9057                 *.*                    LISTEN    

现在,为了更改 postgres 的密码以确保它实际上是一个非常安全的字符串password,我运行了以下命令:

$ sudo -u postgres psql template1

打开psql提示符,然后运行命令:

psql (9.3.4)
Type "help" for help.

template1=# ALTER USER postgres PASSWORD 'password';

返回了:

ALTER ROLE

耶!密码已更改!现在我可以使用Postgres后端打开我的第一个有效的Rails应用程序了!

我得到了什么。

我运行bin/rails server,我收到以下错误:

The error I get

可能有用的更多信息。

当我运行命令psql -l时,我得到以下内容:

                                        List of databases
   Name    |    Owner     | Encoding |   Collate   |    Ctype    |       Access privileges       
-----------+--------------+----------+-------------+-------------+-------------------------------
 postgres  | myusername | UTF8     | en_GB.UTF-8 | en_GB.UTF-8 | 
 template0 | myusername | UTF8     | en_GB.UTF-8 | en_GB.UTF-8 | =c/myusername              +
           |              |          |             |             | myusername=CTc/myusername
 template1 | myusername | UTF8     | en_GB.UTF-8 | en_GB.UTF-8 | =c/myusername              +
           |              |          |             |             | myusername=CTc/myusername
 test      | myusername | UTF8     | en_GB.UTF-8 | en_GB.UTF-8 | 
 testDB    | myusername | UTF8     | en_GB.UTF-8 | en_GB.UTF-8 | 
(5 rows)

如果我运行psql X(其中X是上面列出的任何数据库),然后运行命令\du,我会得到以下结果。

                               List of roles
  Role name   |                   Attributes                   | Member of 
--------------+------------------------------------------------+-----------
 myusername   | Superuser, Create role, Create DB, Replication | {}
 postgres     | Superuser                                      | {}

我按照this link和其他一些人的说明无效。

我做错了什么?

提前非常感谢你。

修改 这是the content of log/development.log

1 个答案:

答案 0 :(得分:1)

rails的默认登录名是当前登录的用户名和空白密码。