我是Rails的新手,这就是我的问题。
我通过这个命令创建了一个Rails
rails new freelancer --database=postgreesql我没有出错,一切看起来都很好。当我打开文件database.yml时,我得到了以下内容
default: &default
adapter: postgresql
encoding: unicode
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
development:
<<: *default
database: freelancer_development
test:
<<: *default
database: freelancer_test
production:
<<: *default
database: freelancer_production
username: freelancer
password: <%= ENV['FREELANCER_DATABASE_PASSWORD'] %>所以,我想我必须为这个PostgreSQL数据库设置用户密码。我搜索并找到了这个链接PostgreSQL: How to change PostgreSQL user password?,跟随它并使用了这个命令
sudo -u freelancer psql freelancer_production但它对我说
sudo : unknown user : freelancer
sudo : unable to initialize policy plugin我对这个问题很困惑,因为我在上面定义了自由职业者?你能给我一些建议吗?非常感谢。
发布于 2021-04-01 15:15:15
首先,这是一个关于访问数据库的问题,不一定与rails相关。你所面对的是postgres没有一个叫做'freelancer‘的用户,因此你不能访问数据库。
有两种方法可以解决这个问题:
A.为'freelance‘用户创建一个数据库用户
基本上你想做的是:
$ sudo -u postgres psql
> CREATE ROLE rolename LOGIN SUPERUSER PASSWORD 'test_password';如果你想了解更多,这里有many references告诉你怎么做
B.使用根postgres用户访问数据库
在这种情况下,我们只需要更改database.yml文件:
将postgres数据库的用户名和密码设置为postgres
的根密码
尽管如此,请注意,使用SUPERUSER角色并不理想,并且存在安全风险。因此,不要在本地主机环境之外或在保存重要信息数据库中使用它。
https://stackoverflow.com/questions/66898010
复制相似问题