【发布时间】:2016-06-27 19:05:31
【问题描述】:
我有一个 Rails 4.2 应用程序部署到 Ubunutu 14.4 Trusty 服务器。我现在遇到的问题是无法运行为我保存记录的脚本。我收到此错误:
Access denied for user 'root'@'localhost' (using password: NO) (Mysql2::Error)
我已将生产数据库配置为使用用户名 root 和正确的密码,但在重新启动服务器并尝试新配置后,我得到了上述错误。
我正在通过导航到服务器上的 lib/ 并运行 ruby script9000.rb 来运行脚本。该脚本运行良好,直到它尝试保存记录。
为什么会发生这种情况?
脚本在Year.find_or_create_by 跳闸
def save_record(record)
sanitize_record(record)
full_year = complete_year(@@record["year_number"])
if full_year >= 2014
year = Year.find_or_create_by(year: full_year)
year.records.create(@@record)
end
end
【问题讨论】:
-
看不到剧本除了瞎猜也没啥好做的
-
我添加了它中断的部分。实际的脚本是巨大的。这是在我拥有的另一台服务器上工作的。我的猜测是它与 MYSQL 的设置方式有关。
-
看起来像 MySQL 凭据问题。您的应用在哪里指定用户和登录名?也许这将是一个设置具有更严格权限的新 MySQL 用户的好机会,而不是使用 root?
-
它在 database.local.yml 文件中指定了这个。我可以创建一个新的数据库用户。也许这实际上是问题所在,尽管我不确定。我现在就试试。
标签: mysql ruby-on-rails-4 ubuntu-14.04