Rails:为什么 Rake 需要 Mysql root 用户?
Rails: Why does Rake require the Mysql root user?
当我尝试 运行 RAKE 任务时出现以下错误:
rake aborted!
Mysql2::Error: Access denied for user 'root'@'localhost' (using password: YES)
我的 database.yml
文件如下所示:
production:
[...]
database: <some_database_name>
username: <a_non_root_user>
password: <password_for_above_non_root_user>
如您所见,冲突是:
- 我使用非根用户访问数据库,但是
- Rake 想使用 root 用户(出于我看不到的原因)
这是否意味着我应该在 database.yml
配置中使用 root 用户? (对我来说似乎违反了安全逻辑。)这里最好的解决方案是什么?
您需要将环境设置为生产环境。
即:
bundle exec rake db:create RAILS_ENV=production
以上答案在我的案例中不起作用,这个问题真的很笼统,所以我添加我的案例,此外,如果您不知道自己在做什么,运行 反对生产可能真的很危险。 ...小心处理。
相反,我为解决此问题所做的只是更新
config/database.yml
default: &default
adapter: mysql2
encoding: utf8mb4
charset: utf8mb4
pool: 5
username: root
password: your_password
development:
<<: *default
database: your_database_name
host: <%= Settings.db.default.host %>
port: <%= Settings.db.default.port %>
这样您的 bundle/rake 任务将加载这些值并且不会在运行时询问它们...还要记住您在正确的文件夹路径中(ruby 上的根路径 rails 项目)
希望对您有所帮助!
我 运行 进入这个问题,对我来说正是这个 (facepalm) 我完全忘记了我的配置文件 :P
另一种选择是使用
username: <%= Settings.db.default.username %>
password: <%= Settings.db.default.password %>
所以请记住,您需要将这些值设置为 OS 变量
当我尝试 运行 RAKE 任务时出现以下错误:
rake aborted!
Mysql2::Error: Access denied for user 'root'@'localhost' (using password: YES)
我的 database.yml
文件如下所示:
production:
[...]
database: <some_database_name>
username: <a_non_root_user>
password: <password_for_above_non_root_user>
如您所见,冲突是:
- 我使用非根用户访问数据库,但是
- Rake 想使用 root 用户(出于我看不到的原因)
这是否意味着我应该在 database.yml
配置中使用 root 用户? (对我来说似乎违反了安全逻辑。)这里最好的解决方案是什么?
您需要将环境设置为生产环境。
即:
bundle exec rake db:create RAILS_ENV=production
以上答案在我的案例中不起作用,这个问题真的很笼统,所以我添加我的案例,此外,如果您不知道自己在做什么,运行 反对生产可能真的很危险。 ...小心处理。
相反,我为解决此问题所做的只是更新
config/database.yml
default: &default
adapter: mysql2
encoding: utf8mb4
charset: utf8mb4
pool: 5
username: root
password: your_password
development:
<<: *default
database: your_database_name
host: <%= Settings.db.default.host %>
port: <%= Settings.db.default.port %>
这样您的 bundle/rake 任务将加载这些值并且不会在运行时询问它们...还要记住您在正确的文件夹路径中(ruby 上的根路径 rails 项目)
希望对您有所帮助!
我 运行 进入这个问题,对我来说正是这个 (facepalm) 我完全忘记了我的配置文件 :P
另一种选择是使用
username: <%= Settings.db.default.username %>
password: <%= Settings.db.default.password %>
所以请记住,您需要将这些值设置为 OS 变量